@invinite-org/chartlang-core 1.1.0 → 1.1.1
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/CHANGELOG.md +6 -0
- package/dist/alert/alert.d.ts +1 -1
- package/dist/alert/alert.js +1 -1
- package/dist/alert/alert.js.map +1 -1
- package/dist/alert/index.js.map +1 -1
- package/dist/color/colorHelpers.js.map +1 -1
- package/dist/color/index.js.map +1 -1
- package/dist/color/parseColor.js.map +1 -1
- package/dist/define/defineAlert.js.map +1 -1
- package/dist/define/defineAlertCondition.js.map +1 -1
- package/dist/define/defineDrawing.d.ts +2 -2
- package/dist/define/defineDrawing.js +2 -2
- package/dist/define/defineDrawing.js.map +1 -1
- package/dist/define/defineIndicator.js.map +1 -1
- package/dist/define/depAccessorSentinel.js.map +1 -1
- package/dist/define/dependency.js.map +1 -1
- package/dist/define/index.js.map +1 -1
- package/dist/define/overrides.js.map +1 -1
- package/dist/draw/buckets.js.map +1 -1
- package/dist/draw/draw.d.ts +2 -3
- package/dist/draw/draw.d.ts.map +1 -1
- package/dist/draw/draw.js +1 -2
- package/dist/draw/draw.js.map +1 -1
- package/dist/draw/drawingKind.d.ts +1 -1
- package/dist/draw/drawingKind.js.map +1 -1
- package/dist/draw/drawingState.d.ts +5 -5
- package/dist/draw/drawingState.js.map +1 -1
- package/dist/draw/drawingStyle.d.ts +1 -1
- package/dist/draw/drawingStyle.js.map +1 -1
- package/dist/draw/handle.js.map +1 -1
- package/dist/draw/index.js.map +1 -1
- package/dist/draw/table.d.ts +1 -1
- package/dist/draw/table.js.map +1 -1
- package/dist/draw/worldPoint.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/input/index.js.map +1 -1
- package/dist/input/input.js.map +1 -1
- package/dist/input/inputDescriptor.js.map +1 -1
- package/dist/interval/intervalToSeconds.js.map +1 -1
- package/dist/plot/index.js.map +1 -1
- package/dist/plot/plot.d.ts +1 -1
- package/dist/plot/plot.js +1 -1
- package/dist/plot/plot.js.map +1 -1
- package/dist/request/index.js.map +1 -1
- package/dist/request/request.js.map +1 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/state/index.js.map +1 -1
- package/dist/state/mutableSlot.js.map +1 -1
- package/dist/state/snapshot.d.ts +5 -5
- package/dist/state/snapshot.js.map +1 -1
- package/dist/state/state.js.map +1 -1
- package/dist/statefulPrimitives.d.ts +1 -1
- package/dist/statefulPrimitives.js +1 -1
- package/dist/statefulPrimitives.js.map +1 -1
- package/dist/ta/index.js.map +1 -1
- package/dist/ta/ta.d.ts +41 -41
- package/dist/ta/ta.js.map +1 -1
- package/dist/time/_lib/dateTimeFormatCache.js.map +1 -1
- package/dist/time/index.js.map +1 -1
- package/dist/time/nyDayKey.js +2 -2
- package/dist/time/nyDayKey.js.map +1 -1
- package/dist/time/session.js.map +1 -1
- package/dist/time/sessionBoundaries.js +2 -2
- package/dist/time/sessionBoundaries.js.map +1 -1
- package/dist/time/types.js.map +1 -1
- package/dist/time/weekKey.js.map +1 -1
- package/dist/time/weekday.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.js.map +1 -1
- package/dist/views/barstate.js.map +1 -1
- package/dist/views/index.js.map +1 -1
- package/dist/views/syminfo.js.map +1 -1
- package/dist/views/timeframe.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @invinite-org/chartlang-core
|
|
2
2
|
|
|
3
|
+
## 1.1.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 71ea0a5: Inline original TypeScript sources into emitted `.js.map` files (`inlineSources: true`). Published sourcemaps no longer reference missing `../src/*.ts` files, fixing "points to missing source files" warnings in downstream bundlers (e.g. Vite).
|
|
8
|
+
|
|
3
9
|
## 1.1.0
|
|
4
10
|
|
|
5
11
|
### Minor Changes
|
package/dist/alert/alert.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export type AlertOpts = Readonly<{
|
|
|
17
17
|
}>;
|
|
18
18
|
/**
|
|
19
19
|
* Compile-time callable hole for `alert(message, opts?)`. The compiler
|
|
20
|
-
* rewrites every callsite
|
|
20
|
+
* rewrites every callsite to dispatch to the runtime; calling this
|
|
21
21
|
* outside the runtime throws the sentinel.
|
|
22
22
|
*
|
|
23
23
|
* @since 0.1
|
package/dist/alert/alert.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// See the LICENSE file in the repo root for full license text.
|
|
3
3
|
/**
|
|
4
4
|
* Compile-time callable hole for `alert(message, opts?)`. The compiler
|
|
5
|
-
* rewrites every callsite
|
|
5
|
+
* rewrites every callsite to dispatch to the runtime; calling this
|
|
6
6
|
* outside the runtime throws the sentinel.
|
|
7
7
|
*
|
|
8
8
|
* @since 0.1
|
package/dist/alert/alert.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert.js","sourceRoot":"","sources":["../../src/alert/alert.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAqB/D;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,KAAK,CAAC,QAAgB,EAAE,KAAiB;IACrD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;AAC7D,CAAC"}
|
|
1
|
+
{"version":3,"file":"alert.js","sourceRoot":"","sources":["../../src/alert/alert.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAqB/D;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,KAAK,CAAC,QAAgB,EAAE,KAAiB;IACrD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;AAC7D,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { AlertSeverity, JsonValue } from \"../types.js\";\n\n/**\n * Styling and metadata options accepted by `alert(...)`. `severity` defaults\n * to `\"info\"`; `meta` is round-tripped to the host as a JSON-serialisable\n * payload.\n *\n * @since 0.1\n * @example\n * const opts: AlertOpts = {\n * severity: \"warning\",\n * meta: { reason: \"crossover\", strength: 0.42 },\n * };\n */\nexport type AlertOpts = Readonly<{\n severity?: AlertSeverity;\n meta?: Readonly<Record<string, JsonValue>>;\n}>;\n\n/**\n * Compile-time callable hole for `alert(message, opts?)`. The compiler\n * rewrites every callsite to dispatch to the runtime; calling this\n * outside the runtime throws the sentinel.\n *\n * @since 0.1\n * @stable\n * @example\n * // Inside a compiled `compute`:\n * // alert(\"EMA crossed\", { severity: \"info\" });\n * import { alert } from \"@invinite-org/chartlang-core\";\n * try { alert(\"noop\"); } catch {}\n */\nexport function alert(_message: string, _opts?: AlertOpts): void {\n throw new Error(\"alert called outside compiled runtime\");\n}\n"]}
|
package/dist/alert/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/alert/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/alert/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,cAAc,YAAY,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nexport * from \"./alert.js\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colorHelpers.js","sourceRoot":"","sources":["../../src/color/colorHelpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"colorHelpers.js","sourceRoot":"","sources":["../../src/color/colorHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { Color } from \"../types.js\";\nimport { parseColor } from \"./parseColor.js\";\n\n/**\n * Gradient color stop for `color.fromGradient`.\n *\n * @since 0.5\n * @stable\n * @example\n * const stop: GradientStop = { at: 0, color: \"#0000ff\" };\n * void stop;\n */\nexport type GradientStop = Readonly<{ at: number; color: Color }>;\n\nconst TRANSPARENT_BLACK = \"rgba(0, 0, 0, 0)\";\n\nfunction clampUnit(value: number): number {\n if (Number.isNaN(value)) return 0;\n return Math.min(1, Math.max(0, value));\n}\n\nfunction clampByte(value: number): number {\n if (Number.isNaN(value)) return 0;\n return Math.min(255, Math.max(0, Math.floor(value)));\n}\n\nfunction clampHue(value: number): number {\n if (Number.isNaN(value)) return 0;\n return Math.min(359.999, Math.max(0, value));\n}\n\nfunction clampPercent(value: number): number {\n if (Number.isNaN(value)) return 0;\n return Math.min(100, Math.max(0, value));\n}\n\nfunction formatNumber(value: number): string {\n const rounded = Math.round(value * 1000) / 1000;\n return String(rounded);\n}\n\nfunction emitRgb(r: number, g: number, b: number, alpha: number): Color {\n if (alpha >= 1) return `rgb(${r}, ${g}, ${b})`;\n return `rgba(${r}, ${g}, ${b}, ${formatNumber(alpha)})`;\n}\n\nfunction emitRgba(r: number, g: number, b: number, alpha: number): Color {\n return `rgba(${r}, ${g}, ${b}, ${formatNumber(alpha)})`;\n}\n\n/**\n * Dynamic color from a normalised position. `t` is clamped to `[0, 1]`;\n * out-of-range maps to the boundary stop. Stops must be pre-sorted by `at`\n * ascending. Empty stops return transparent black.\n *\n * Pine's `color.from_gradient`.\n *\n * @since 0.5\n * @stable\n * @example\n * // const blue = \"#0000ff\";\n * // const red = \"#ff0000\";\n * // color.fromGradient(0.5, [{ at: 0, color: blue }, { at: 1, color: red }]);\n */\nexport function fromGradient(t: number, stops: ReadonlyArray<GradientStop>): Color {\n const first = stops[0];\n if (first === undefined) return TRANSPARENT_BLACK;\n if (stops.length === 1 || Number.isNaN(t)) return first.color;\n\n const position = clampUnit(t);\n if (position <= first.at) return first.color;\n const last = stops[stops.length - 1];\n if (position >= last.at) return last.color;\n\n let previous = first;\n let next = last;\n for (let i = 1; i < stops.length; i += 1) {\n const candidate = stops[i];\n if (position <= candidate.at) {\n next = candidate;\n break;\n }\n previous = candidate;\n }\n\n const left = parseColor(previous.color);\n const right = parseColor(next.color);\n if (left === null || right === null) return previous.color;\n const ratio = (position - previous.at) / (next.at - previous.at);\n const alpha = left.a + (right.a - left.a) * ratio;\n return emitRgb(\n clampByte(left.r + (right.r - left.r) * ratio),\n clampByte(left.g + (right.g - left.g) * ratio),\n clampByte(left.b + (right.b - left.b) * ratio),\n clampUnit(alpha),\n );\n}\n\n/**\n * Override an existing color's alpha channel. `alpha` is clamped to\n * `[0, 1]`. NaN returns the input color unchanged. Pine's `color.new(c,\n * transp)` analogue using direct alpha.\n *\n * @since 0.5\n * @stable\n * @example\n * const c = withAlpha(\"#ff0000\", 0.5);\n * void c;\n */\nexport function withAlpha(c: Color, alpha: number): Color {\n if (Number.isNaN(alpha)) return c;\n const parsed = parseColor(c);\n if (parsed === null) return c;\n return emitRgba(parsed.r, parsed.g, parsed.b, clampUnit(alpha));\n}\n\n/**\n * Construct a color from RGB(A) components. Each component is clamped to\n * `[0, 255]`; alpha defaults to `1`. NaN components clamp to `0`.\n *\n * @since 0.5\n * @stable\n * @example\n * const red = rgb(255, 0, 0);\n * void red;\n */\nexport function rgb(r: number, g: number, b: number, alpha?: number): Color {\n const red = clampByte(r);\n const green = clampByte(g);\n const blue = clampByte(b);\n if (alpha === undefined) return `rgb(${red}, ${green}, ${blue})`;\n return emitRgba(red, green, blue, clampUnit(alpha));\n}\n\n/**\n * Construct a color from HSL(A) components. `h` is clamped to `[0, 360)`;\n * `s` and `l` are clamped to `[0, 100]`. Alpha defaults to `1`. NaN\n * components clamp to `0`.\n *\n * @since 0.5\n * @stable\n * @example\n * const red = hsl(0, 100, 50);\n * void red;\n */\nexport function hsl(h: number, s: number, l: number, alpha?: number): Color {\n const hue = formatNumber(clampHue(h));\n const sat = formatNumber(clampPercent(s));\n const light = formatNumber(clampPercent(l));\n if (alpha === undefined) return `hsl(${hue}, ${sat}%, ${light}%)`;\n return `hsla(${hue}, ${sat}%, ${light}%, ${formatNumber(clampUnit(alpha))})`;\n}\n"]}
|
package/dist/color/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/color/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGtE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/B,GAAG,aAAa;IAChB,YAAY;IACZ,SAAS;IACT,GAAG;IACH,GAAG;CACN,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/color/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGtE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/B,GAAG,aAAa;IAChB,YAAY;IACZ,SAAS;IACT,GAAG;IACH,GAAG;CACN,CAAC,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport { fromGradient, hsl, rgb, withAlpha } from \"./colorHelpers.js\";\nimport { COLOR_PALETTE } from \"./parseColor.js\";\n\nexport { fromGradient, hsl, rgb, withAlpha } from \"./colorHelpers.js\";\nexport type { GradientStop } from \"./colorHelpers.js\";\n\n/**\n * Pine-style color namespace. Includes the named palette plus dynamic\n * helpers for compute-time colors.\n *\n * @since 0.5\n * @stable\n * @example\n * const c = color.withAlpha(color.red, 0.5);\n * void c;\n */\nexport const color = Object.freeze({\n ...COLOR_PALETTE,\n fromGradient,\n withAlpha,\n rgb,\n hsl,\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseColor.js","sourceRoot":"","sources":["../../src/color/parseColor.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAI/D;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,GAAG,EAAE,SAAS;IACd,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;CACpB,CAAC,CAAC;AAIH,MAAM,SAAS,GAAG,mBAAmB,CAAC;AACtC,MAAM,QAAQ,GAAG,mBAAmB,CAAC;AACrC,MAAM,GAAG,GAAG,kFAAkF,CAAC;AAC/F,MAAM,GAAG,GAAG,sFAAsF,CAAC;AAEnG,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACnC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACpD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAElD,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC;IACtE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IACxB,MAAM,OAAO,GAAG,CAAC,CAAS,EAAU,EAAE;QAClC,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,QAAQ,GAAG,CAAC;YAAE,QAAQ,IAAI,CAAC,CAAC;QAChC,IAAI,QAAQ,GAAG,CAAC;YAAE,QAAQ,IAAI,CAAC,CAAC;QAChC,IAAI,QAAQ,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QACxD,IAAI,QAAQ,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QAC/B,IAAI,QAAQ,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAClE,OAAO,CAAC,CAAC;IACb,CAAC,CAAC;IAEF,OAAO;QACH,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QAC/C,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACvC,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;KAClD,CAAC;AACN,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CACtB,CAAQ;IAER,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,aAAa,CAAC,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO;YACH,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;YAC5C,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;YAC5C,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;YAC5C,CAAC,EAAE,CAAC;SACP,CAAC;IACN,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,OAAO,EAAE,CAAC;QACV,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACvB,OAAO;YACH,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YACvC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YACvC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YACvC,CAAC,EAAE,CAAC;SACP,CAAC;IACN,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACtE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACtE,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
|
1
|
+
{"version":3,"file":"parseColor.js","sourceRoot":"","sources":["../../src/color/parseColor.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { Color } from \"../types.js\";\n\n/**\n * Pine-style named palette values accepted by the color parser and exposed\n * through the `color` namespace.\n *\n * @internal\n * @since 0.5\n * @example\n * const red = COLOR_PALETTE.red;\n * void red;\n */\nexport const COLOR_PALETTE = Object.freeze({\n aqua: \"#00ffff\",\n black: \"#000000\",\n blue: \"#0000ff\",\n fuchsia: \"#ff00ff\",\n gray: \"#808080\",\n green: \"#008000\",\n lime: \"#00ff00\",\n maroon: \"#800000\",\n navy: \"#000080\",\n olive: \"#808000\",\n orange: \"#ffa500\",\n purple: \"#800080\",\n red: \"#ff0000\",\n silver: \"#c0c0c0\",\n teal: \"#008080\",\n white: \"#ffffff\",\n yellow: \"#ffff00\",\n});\n\ntype PaletteName = keyof typeof COLOR_PALETTE;\n\nconst HEX_SHORT = /^#([0-9a-f]{3})$/i;\nconst HEX_LONG = /^#([0-9a-f]{6})$/i;\nconst RGB = /^rgba?\\(\\s*([^,\\s]+)\\s*,\\s*([^,\\s]+)\\s*,\\s*([^,\\s]+)(?:\\s*,\\s*([^,\\s]+))?\\s*\\)$/i;\nconst HSL = /^hsla?\\(\\s*([^,\\s]+)\\s*,\\s*([^,\\s%]+)%\\s*,\\s*([^,\\s%]+)%(?:\\s*,\\s*([^,\\s]+))?\\s*\\)$/i;\n\nfunction isPaletteName(value: string): value is PaletteName {\n return Object.prototype.hasOwnProperty.call(COLOR_PALETTE, value);\n}\n\nfunction clampByte(value: number): number {\n return Math.min(255, Math.max(0, Math.floor(value)));\n}\n\nfunction clampRoundedByte(value: number): number {\n return Math.min(255, Math.max(0, Math.round(value)));\n}\n\nfunction clampUnit(value: number): number {\n return Math.min(1, Math.max(0, value));\n}\n\nfunction parseNumber(value: string): number | null {\n const parsed = Number(value);\n if (Number.isNaN(parsed)) return null;\n return parsed;\n}\n\nfunction hslToRgb(h: number, s: number, l: number): Readonly<{ r: number; g: number; b: number }> {\n const hue = Math.min(359.999, Math.max(0, h)) / 360;\n const sat = Math.min(100, Math.max(0, s)) / 100;\n const light = Math.min(100, Math.max(0, l)) / 100;\n\n if (sat === 0) {\n const gray = clampRoundedByte(light * 255);\n return { r: gray, g: gray, b: gray };\n }\n\n const q = light < 0.5 ? light * (1 + sat) : light + sat - light * sat;\n const p = 2 * light - q;\n const channel = (t: number): number => {\n let adjusted = t;\n if (adjusted < 0) adjusted += 1;\n if (adjusted > 1) adjusted -= 1;\n if (adjusted < 1 / 6) return p + (q - p) * 6 * adjusted;\n if (adjusted < 1 / 2) return q;\n if (adjusted < 2 / 3) return p + (q - p) * (2 / 3 - adjusted) * 6;\n return p;\n };\n\n return {\n r: clampRoundedByte(channel(hue + 1 / 3) * 255),\n g: clampRoundedByte(channel(hue) * 255),\n b: clampRoundedByte(channel(hue - 1 / 3) * 255),\n };\n}\n\n/**\n * Parse the CSS color forms chartlang emits: `#rgb`, `#rrggbb`,\n * `rgb(...)`, `rgba(...)`, `hsl(...)`, `hsla(...)`, and the named palette.\n * Returns `null` for unparseable input.\n *\n * @internal\n * @since 0.5\n * @example\n * const parsed = parseColor(\"#ff0000\");\n * void parsed;\n */\nexport function parseColor(\n c: Color,\n): Readonly<{ r: number; g: number; b: number; a: number }> | null {\n const value = c.trim().toLowerCase();\n if (isPaletteName(value)) return parseColor(COLOR_PALETTE[value]);\n\n const shortHex = HEX_SHORT.exec(value);\n if (shortHex) {\n const hex = shortHex[1];\n return {\n r: Number.parseInt(`${hex[0]}${hex[0]}`, 16),\n g: Number.parseInt(`${hex[1]}${hex[1]}`, 16),\n b: Number.parseInt(`${hex[2]}${hex[2]}`, 16),\n a: 1,\n };\n }\n\n const longHex = HEX_LONG.exec(value);\n if (longHex) {\n const hex = longHex[1];\n return {\n r: Number.parseInt(hex.slice(0, 2), 16),\n g: Number.parseInt(hex.slice(2, 4), 16),\n b: Number.parseInt(hex.slice(4, 6), 16),\n a: 1,\n };\n }\n\n const rgbMatch = RGB.exec(value);\n if (rgbMatch) {\n const r = parseNumber(rgbMatch[1]);\n const g = parseNumber(rgbMatch[2]);\n const b = parseNumber(rgbMatch[3]);\n const a = rgbMatch[4] === undefined ? 1 : parseNumber(rgbMatch[4]);\n if (r === null || g === null || b === null || a === null) return null;\n return { r: clampByte(r), g: clampByte(g), b: clampByte(b), a: clampUnit(a) };\n }\n\n const hslMatch = HSL.exec(value);\n if (hslMatch) {\n const h = parseNumber(hslMatch[1]);\n const s = parseNumber(hslMatch[2]);\n const l = parseNumber(hslMatch[3]);\n const a = hslMatch[4] === undefined ? 1 : parseNumber(hslMatch[4]);\n if (h === null || s === null || l === null || a === null) return null;\n return { ...hslToRgb(h, s, l), a: clampUnit(a) };\n }\n\n return null;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineAlert.js","sourceRoot":"","sources":["../../src/define/defineAlert.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAG/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AA0BtE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,WAAW,CAAC,IAAqB;IAC7C,MAAM,YAAY,GAA4B,MAAM,CAAC,MAAM,CAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpF,MAAM,kBAAkB,GAA0B,MAAM,CAAC,MAAM,CAAW,EAAE,CAAC,CAAC;IAC9E,MAAM,gBAAgB,GAAqC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG;QACT,UAAU,EAAE,CAAU;QACtB,IAAI,EAAE,OAAgB;QACtB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;QACzB,YAAY;QACZ,kBAAkB;QAClB,oBAAoB,EAAE,KAAK;QAC3B,gBAAgB;QAChB,WAAW,EAAE,CAAC;KACjB,CAAC;IACF,MAAM,QAAQ,GAAG;QACb,GAAG,IAAI;QACP,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,iBAAiB,KAAK,SAAS;YACpC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACpD,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;KACzE,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAChB,0BAA0B,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjC,OAAO,EAAE,IAAI,CAAC,OAAO;KACxB,CAAC,CACL,CAAC;AACN,CAAC"}
|
|
1
|
+
{"version":3,"file":"defineAlert.js","sourceRoot":"","sources":["../../src/define/defineAlert.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAG/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AA0BtE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,WAAW,CAAC,IAAqB;IAC7C,MAAM,YAAY,GAA4B,MAAM,CAAC,MAAM,CAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpF,MAAM,kBAAkB,GAA0B,MAAM,CAAC,MAAM,CAAW,EAAE,CAAC,CAAC;IAC9E,MAAM,gBAAgB,GAAqC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG;QACT,UAAU,EAAE,CAAU;QACtB,IAAI,EAAE,OAAgB;QACtB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;QACzB,YAAY;QACZ,kBAAkB;QAClB,oBAAoB,EAAE,KAAK;QAC3B,gBAAgB;QAChB,WAAW,EAAE,CAAC;KACjB,CAAC;IACF,MAAM,QAAQ,GAAG;QACb,GAAG,IAAI;QACP,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,iBAAiB,KAAK,SAAS;YACpC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACpD,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;KACzE,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAChB,0BAA0B,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjC,OAAO,EAAE,IAAI,CAAC,OAAO;KACxB,CAAC,CACL,CAAC;AACN,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { CompiledScriptObject, ComputeFn, InputSchema } from \"../types.js\";\nimport { attachDepAccessorSentinels } from \"./depAccessorSentinel.js\";\nimport type { ScriptOverrides } from \"./overrides.js\";\n\ntype AlertOverrides = Omit<ScriptOverrides, \"scale\" | \"format\" | \"precision\">;\n\n/**\n * Author-supplied options the script passes to `defineAlert(...)`. Same shape\n * as `DefineIndicatorOpts` minus the indicator-only `overlay` flag — alert\n * scripts have no plot output.\n *\n * @since 0.1\n * @example\n * const opts: DefineAlertOpts = {\n * name: \"RSI overbought\",\n * apiVersion: 1,\n * compute: () => {},\n * };\n */\nexport type DefineAlertOpts = Readonly<{\n name: string;\n apiVersion: 1;\n inputs?: InputSchema;\n compute: ComputeFn;\n}> &\n AlertOverrides;\n\n/**\n * Construct a Phase-1 alert script object. Returns a frozen\n * `CompiledScriptObject` whose `manifest.kind` is `\"alert\"` and whose\n * declared `capabilities` is `[\"alerts\"]`. Same compile-time override\n * semantics as `defineIndicator`.\n *\n * @since 0.1\n * @example\n * ```ts\n * import { defineAlert } from \"@invinite-org/chartlang-core\";\n *\n * export default defineAlert({\n * name: \"RSI > 70\",\n * apiVersion: 1,\n * compute: ({ alert }) => { alert(\"overbought\"); },\n * });\n * ```\n */\nexport function defineAlert(opts: DefineAlertOpts): CompiledScriptObject {\n const capabilities: ReadonlyArray<\"alerts\"> = Object.freeze<[\"alerts\"]>([\"alerts\"]);\n const requestedIntervals: ReadonlyArray<string> = Object.freeze<string[]>([]);\n const seriesCapacities: Readonly<Record<string, number>> = Object.freeze({});\n const base = {\n apiVersion: 1 as const,\n kind: \"alert\" as const,\n name: opts.name,\n inputs: opts.inputs ?? {},\n capabilities,\n requestedIntervals,\n userPickableInterval: false,\n seriesCapacities,\n maxLookback: 0,\n };\n const manifest = {\n ...base,\n ...(opts.maxBarsBack === undefined ? {} : { maxBarsBack: opts.maxBarsBack }),\n ...(opts.requiresIntervals === undefined\n ? {}\n : { requiresIntervals: opts.requiresIntervals }),\n ...(opts.shortName === undefined ? {} : { shortName: opts.shortName }),\n };\n return Object.freeze(\n attachDepAccessorSentinels({\n manifest: Object.freeze(manifest),\n compute: opts.compute,\n }),\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineAlertCondition.js","sourceRoot":"","sources":["../../src/define/defineAlertCondition.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAU/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AA+BtE,SAAS,eAAe,CACpB,EAAU,EACV,UAAoC;IAEpC,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,EAAE;QACF,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,cAAc,EAAE,UAAU,CAAC,cAAc;KAC5C,CAAC,CAAC;AACP,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAA8B;IAC/D,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CACjC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAC7F,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAmC,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC1F,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAW,EAAE,CAAC,CAAC;IACvD,MAAM,gBAAgB,GAAqC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAmB,MAAM,CAAC,MAAM,CAAC;QAC3C,UAAU,EAAE,CAAC;QACb,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;QACzB,YAAY;QACZ,kBAAkB;QAClB,oBAAoB,EAAE,KAAK;QAC3B,gBAAgB;QAChB,WAAW,EAAE,CAAC;QACd,eAAe;KAClB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC1F,CAAC"}
|
|
1
|
+
{"version":3,"file":"defineAlertCondition.js","sourceRoot":"","sources":["../../src/define/defineAlertCondition.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAU/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AA+BtE,SAAS,eAAe,CACpB,EAAU,EACV,UAAoC;IAEpC,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,EAAE;QACF,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,cAAc,EAAE,UAAU,CAAC,cAAc;KAC5C,CAAC,CAAC;AACP,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAA8B;IAC/D,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CACjC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAC7F,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAmC,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC1F,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAW,EAAE,CAAC,CAAC;IACvD,MAAM,gBAAgB,GAAqC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAmB,MAAM,CAAC,MAAM,CAAC;QAC3C,UAAU,EAAE,CAAC;QACb,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;QACzB,YAAY;QACZ,kBAAkB;QAClB,oBAAoB,EAAE,KAAK;QAC3B,gBAAgB;QAChB,WAAW,EAAE,CAAC;QACd,eAAe;KAClB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC1F,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type {\n AlertConditionDescriptor,\n AlertConditionDefinition,\n CompiledScriptObject,\n ComputeFn,\n InputSchema,\n ScriptManifest,\n} from \"../types.js\";\nimport { attachDepAccessorSentinels } from \"./depAccessorSentinel.js\";\n\n/**\n * Author-supplied options for `defineAlertCondition(...)`. Mirrors\n * `DefineAlertOpts` plus the `conditions` map.\n *\n * @since 0.5\n * @stable\n * @example\n * const opts: DefineAlertConditionOpts = {\n * name: \"EMA cross\",\n * apiVersion: 1,\n * conditions: {\n * up: {\n * title: \"Up\",\n * description: \"Close > EMA\",\n * defaultMessage: \"{{ticker}} up\",\n * },\n * },\n * compute: () => {},\n * };\n * void opts;\n */\nexport type DefineAlertConditionOpts = Readonly<{\n name: string;\n apiVersion: 1;\n inputs?: InputSchema;\n conditions: Readonly<Record<string, AlertConditionDescriptor>>;\n compute: ComputeFn;\n}>;\n\nfunction freezeCondition(\n id: string,\n descriptor: AlertConditionDescriptor,\n): AlertConditionDefinition {\n return Object.freeze({\n id,\n title: descriptor.title,\n description: descriptor.description,\n defaultMessage: descriptor.defaultMessage,\n });\n}\n\n/**\n * Construct a Phase-5 alert-condition script. Returns a frozen\n * `CompiledScriptObject` whose `manifest.kind` is `\"alertCondition\"`.\n *\n * @since 0.5\n * @stable\n * @example\n * ```ts\n * import { defineAlertCondition, input, ta } from \"@invinite-org/chartlang-core\";\n *\n * export default defineAlertCondition({\n * name: \"EMA cross\",\n * apiVersion: 1,\n * inputs: { length: input.int(20) },\n * conditions: {\n * up: {\n * title: \"Up\",\n * description: \"Close > EMA\",\n * defaultMessage: \"{{ticker}} up\",\n * },\n * down: {\n * title: \"Down\",\n * description: \"Close < EMA\",\n * defaultMessage: \"{{ticker}} down\",\n * },\n * },\n * compute({ bar, ta, inputs, signal }) {\n * const ema = ta.ema(bar.close, inputs.length as number);\n * signal?.(\"up\", ta.crossover(bar.close, ema).current);\n * signal?.(\"down\", ta.crossunder(bar.close, ema).current);\n * },\n * });\n * ```\n */\nexport function defineAlertCondition(opts: DefineAlertConditionOpts): CompiledScriptObject {\n const alertConditions = Object.freeze(\n Object.entries(opts.conditions).map(([id, descriptor]) => freezeCondition(id, descriptor)),\n );\n const capabilities = Object.freeze<ReadonlyArray<\"alertConditions\">>([\"alertConditions\"]);\n const requestedIntervals = Object.freeze<string[]>([]);\n const seriesCapacities: Readonly<Record<string, number>> = Object.freeze({});\n const manifest: ScriptManifest = Object.freeze({\n apiVersion: 1,\n kind: \"alertCondition\",\n name: opts.name,\n inputs: opts.inputs ?? {},\n capabilities,\n requestedIntervals,\n userPickableInterval: false,\n seriesCapacities,\n maxLookback: 0,\n alertConditions,\n });\n return Object.freeze(attachDepAccessorSentinels({ manifest, compute: opts.compute }));\n}\n"]}
|
|
@@ -30,13 +30,13 @@ export type DefineDrawingOpts = Readonly<{
|
|
|
30
30
|
* and drawing scripts identically at the per-bar level — the
|
|
31
31
|
* discriminator is a host-side hint the editor uses to distinguish
|
|
32
32
|
* drawing scripts from indicator scripts in the script-picker UI
|
|
33
|
-
|
|
33
|
+
*.
|
|
34
34
|
*
|
|
35
35
|
* `compute({ bar, draw, inputs, ... })` runs per bar; emit drawings via
|
|
36
36
|
* the `draw.*` namespace. Each `draw.<kind>(...)` returns a
|
|
37
37
|
* {@link DrawingHandle} the script can `update(...)` or `remove()`
|
|
38
38
|
* across bars. Phase 4 layers an interactive-anchor-picker UI on top of
|
|
39
|
-
* this constructor
|
|
39
|
+
* this constructor; Phase 3 ships the constructor
|
|
40
40
|
* with fixed anchors so the runtime path can be exercised.
|
|
41
41
|
*
|
|
42
42
|
* @since 0.3
|
|
@@ -8,13 +8,13 @@ import { attachDepAccessorSentinels } from "./depAccessorSentinel.js";
|
|
|
8
8
|
* and drawing scripts identically at the per-bar level — the
|
|
9
9
|
* discriminator is a host-side hint the editor uses to distinguish
|
|
10
10
|
* drawing scripts from indicator scripts in the script-picker UI
|
|
11
|
-
|
|
11
|
+
*.
|
|
12
12
|
*
|
|
13
13
|
* `compute({ bar, draw, inputs, ... })` runs per bar; emit drawings via
|
|
14
14
|
* the `draw.*` namespace. Each `draw.<kind>(...)` returns a
|
|
15
15
|
* {@link DrawingHandle} the script can `update(...)` or `remove()`
|
|
16
16
|
* across bars. Phase 4 layers an interactive-anchor-picker UI on top of
|
|
17
|
-
* this constructor
|
|
17
|
+
* this constructor; Phase 3 ships the constructor
|
|
18
18
|
* with fixed anchors so the runtime path can be exercised.
|
|
19
19
|
*
|
|
20
20
|
* @since 0.3
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineDrawing.js","sourceRoot":"","sources":["../../src/define/defineDrawing.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAG/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AA6BtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,aAAa,CAAC,IAAuB;IACjD,MAAM,YAAY,GAA8B,MAAM,CAAC,MAAM,CAAe,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1F,MAAM,kBAAkB,GAA0B,MAAM,CAAC,MAAM,CAAW,EAAE,CAAC,CAAC;IAC9E,MAAM,gBAAgB,GAAqC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG;QACT,UAAU,EAAE,CAAU;QACtB,IAAI,EAAE,SAAkB;QACxB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;QACzB,YAAY;QACZ,kBAAkB;QAClB,oBAAoB,EAAE,KAAK;QAC3B,gBAAgB;QAChB,WAAW,EAAE,CAAC;KACjB,CAAC;IACF,MAAM,QAAQ,GAAG;QACb,GAAG,IAAI;QACP,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACtE,GAAG,CAAC,IAAI,CAAC,iBAAiB,KAAK,SAAS;YACpC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACpD,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;KACzE,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAChB,0BAA0B,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjC,OAAO,EAAE,IAAI,CAAC,OAAO;KACxB,CAAC,CACL,CAAC;AACN,CAAC"}
|
|
1
|
+
{"version":3,"file":"defineDrawing.js","sourceRoot":"","sources":["../../src/define/defineDrawing.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAG/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AA6BtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,aAAa,CAAC,IAAuB;IACjD,MAAM,YAAY,GAA8B,MAAM,CAAC,MAAM,CAAe,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1F,MAAM,kBAAkB,GAA0B,MAAM,CAAC,MAAM,CAAW,EAAE,CAAC,CAAC;IAC9E,MAAM,gBAAgB,GAAqC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG;QACT,UAAU,EAAE,CAAU;QACtB,IAAI,EAAE,SAAkB;QACxB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;QACzB,YAAY;QACZ,kBAAkB;QAClB,oBAAoB,EAAE,KAAK;QAC3B,gBAAgB;QAChB,WAAW,EAAE,CAAC;KACjB,CAAC;IACF,MAAM,QAAQ,GAAG;QACb,GAAG,IAAI;QACP,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACtE,GAAG,CAAC,IAAI,CAAC,iBAAiB,KAAK,SAAS;YACpC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACpD,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;KACzE,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAChB,0BAA0B,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjC,OAAO,EAAE,IAAI,CAAC,OAAO;KACxB,CAAC,CACL,CAAC;AACN,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { CompiledScriptObject, ComputeFn, DrawingCounts, InputSchema } from \"../types.js\";\nimport { attachDepAccessorSentinels } from \"./depAccessorSentinel.js\";\nimport type { ScriptOverrides } from \"./overrides.js\";\n\ntype DrawingOverrides = Omit<ScriptOverrides, \"maxBarsBack\" | \"scale\">;\n\n/**\n * Author-supplied options the script passes to `defineDrawing(...)`. Same\n * shape as `DefineAlertOpts` (no indicator-only `overlay` flag) plus the\n * Phase-3 `maxDrawings` per-bucket cap from `DefineIndicatorOpts`.\n *\n * @since 0.3\n * @stable\n * @example\n * const opts: DefineDrawingOpts = {\n * name: \"Interactive Fib Retracement\",\n * apiVersion: 1,\n * compute: () => {},\n * };\n */\nexport type DefineDrawingOpts = Readonly<{\n name: string;\n apiVersion: 1;\n inputs?: InputSchema;\n compute: ComputeFn;\n /** Per-bucket cap on `draw.*` emissions per bar. @since 0.3 */\n maxDrawings?: DrawingCounts;\n}> &\n DrawingOverrides;\n\n/**\n * Construct a Phase-3 drawing script object. Mirrors `defineIndicator`\n * structurally; only `manifest.kind` (`\"drawing\"`) and the declared\n * `capabilities` (`[\"drawings\"]`) differ. The runtime treats indicator\n * and drawing scripts identically at the per-bar level — the\n * discriminator is a host-side hint the editor uses to distinguish\n * drawing scripts from indicator scripts in the script-picker UI\n *.\n *\n * `compute({ bar, draw, inputs, ... })` runs per bar; emit drawings via\n * the `draw.*` namespace. Each `draw.<kind>(...)` returns a\n * {@link DrawingHandle} the script can `update(...)` or `remove()`\n * across bars. Phase 4 layers an interactive-anchor-picker UI on top of\n * this constructor; Phase 3 ships the constructor\n * with fixed anchors so the runtime path can be exercised.\n *\n * @since 0.3\n * @stable\n * @example\n * ```ts\n * import { defineDrawing } from \"@invinite-org/chartlang-core\";\n *\n * export default defineDrawing({\n * name: \"Interactive Fib Retracement\",\n * apiVersion: 1,\n * compute: ({ draw }) => {\n * draw.fibRetracement(\n * { time: 1_700_000_000_000, price: 100 },\n * { time: 1_700_086_400_000, price: 110 },\n * );\n * },\n * });\n * ```\n */\nexport function defineDrawing(opts: DefineDrawingOpts): CompiledScriptObject {\n const capabilities: ReadonlyArray<\"drawings\"> = Object.freeze<[\"drawings\"]>([\"drawings\"]);\n const requestedIntervals: ReadonlyArray<string> = Object.freeze<string[]>([]);\n const seriesCapacities: Readonly<Record<string, number>> = Object.freeze({});\n const base = {\n apiVersion: 1 as const,\n kind: \"drawing\" as const,\n name: opts.name,\n inputs: opts.inputs ?? {},\n capabilities,\n requestedIntervals,\n userPickableInterval: false,\n seriesCapacities,\n maxLookback: 0,\n };\n const manifest = {\n ...base,\n ...(opts.maxDrawings === undefined ? {} : { maxDrawings: opts.maxDrawings }),\n ...(opts.format === undefined ? {} : { format: opts.format }),\n ...(opts.precision === undefined ? {} : { precision: opts.precision }),\n ...(opts.requiresIntervals === undefined\n ? {}\n : { requiresIntervals: opts.requiresIntervals }),\n ...(opts.shortName === undefined ? {} : { shortName: opts.shortName }),\n };\n return Object.freeze(\n attachDepAccessorSentinels({\n manifest: Object.freeze(manifest),\n compute: opts.compute,\n }),\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineIndicator.js","sourceRoot":"","sources":["../../src/define/defineIndicator.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAG/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAyCtE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,eAAe,CAAC,IAAyB;IACrD,MAAM,YAAY,GAAgC,MAAM,CAAC,MAAM,CAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;IAChG,MAAM,kBAAkB,GAA0B,MAAM,CAAC,MAAM,CAAW,EAAE,CAAC,CAAC;IAC9E,MAAM,gBAAgB,GAAqC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG;QACT,UAAU,EAAE,CAAU;QACtB,IAAI,EAAE,WAAoB;QAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;QACzB,YAAY;QACZ,kBAAkB;QAClB,oBAAoB,EAAE,KAAK;QAC3B,gBAAgB;QAChB,WAAW,EAAE,CAAC;KACjB,CAAC;IACF,MAAM,QAAQ,GAAG;QACb,GAAG,IAAI;QACP,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAChE,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACtE,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1D,GAAG,CAAC,IAAI,CAAC,iBAAiB,KAAK,SAAS;YACpC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACpD,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACtE,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;KACnE,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAChB,0BAA0B,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjC,OAAO,EAAE,IAAI,CAAC,OAAO;KACxB,CAAC,CACL,CAAC;AACN,CAAC"}
|
|
1
|
+
{"version":3,"file":"defineIndicator.js","sourceRoot":"","sources":["../../src/define/defineIndicator.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAG/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAyCtE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,eAAe,CAAC,IAAyB;IACrD,MAAM,YAAY,GAAgC,MAAM,CAAC,MAAM,CAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;IAChG,MAAM,kBAAkB,GAA0B,MAAM,CAAC,MAAM,CAAW,EAAE,CAAC,CAAC;IAC9E,MAAM,gBAAgB,GAAqC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG;QACT,UAAU,EAAE,CAAU;QACtB,IAAI,EAAE,WAAoB;QAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;QACzB,YAAY;QACZ,kBAAkB;QAClB,oBAAoB,EAAE,KAAK;QAC3B,gBAAgB;QAChB,WAAW,EAAE,CAAC;KACjB,CAAC;IACF,MAAM,QAAQ,GAAG;QACb,GAAG,IAAI;QACP,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAChE,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACtE,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1D,GAAG,CAAC,IAAI,CAAC,iBAAiB,KAAK,SAAS;YACpC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACpD,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACtE,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;KACnE,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAChB,0BAA0B,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjC,OAAO,EAAE,IAAI,CAAC,OAAO;KACxB,CAAC,CACL,CAAC;AACN,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { CompiledScriptObject, ComputeFn, DrawingCounts, InputSchema } from \"../types.js\";\nimport { attachDepAccessorSentinels } from \"./depAccessorSentinel.js\";\nimport type { OutputDeclaration } from \"./dependency.js\";\nimport type { ScriptOverrides } from \"./overrides.js\";\n\n/**\n * Author-supplied options the script passes to `defineIndicator(...)`. The\n * compiler reads this object's static shape to build the script's manifest;\n * any field can be overridden at compile time via the AST transform.\n *\n * `maxDrawings` (Phase 3 / §10 / §4.1) caps the per-bucket `draw.*`\n * emission rate per bar. Omit to default to the adapter's cap.\n *\n * @since 0.1\n * @example\n * const opts: DefineIndicatorOpts = {\n * name: \"demo\",\n * apiVersion: 1,\n * compute: () => {},\n * };\n */\nexport type DefineIndicatorOpts = Readonly<{\n name: string;\n apiVersion: 1;\n overlay?: boolean;\n inputs?: InputSchema;\n compute: ComputeFn;\n /** Per-bucket cap on `draw.*` emissions per bar. @since 0.3 */\n maxDrawings?: DrawingCounts;\n /**\n * Titled outputs this producer exposes for `<binding>.output(...)`\n * consumption. Injected by the compiler from the producer's\n * `plot(value, { title })` calls so the runtime object is\n * self-describing — hosts read `manifest.outputs` to allocate the\n * dep-output ring buffer. Hand-authored scripts omit it; absent\n * `outputs` keeps the emitted manifest byte-identical to a script\n * with no titled plots. @since 0.7\n */\n outputs?: ReadonlyArray<OutputDeclaration>;\n}> &\n ScriptOverrides;\n\n/**\n * Construct a Phase-1 indicator script object. Returns a frozen\n * `CompiledScriptObject` with a default manifest the compiler later overrides\n * (extracts `capabilities` from primitive usage, `maxLookback` from\n * `series[N]` reads). The defaults let the constructor work in unit tests\n * before the compiler runs.\n *\n * @since 0.1\n * @example\n * ```ts\n * import { defineIndicator } from \"@invinite-org/chartlang-core\";\n *\n * export default defineIndicator({\n * name: \"EMA(20)\",\n * apiVersion: 1,\n * compute: ({ bar, plot }) => { plot(bar.close); },\n * });\n * ```\n */\nexport function defineIndicator(opts: DefineIndicatorOpts): CompiledScriptObject {\n const capabilities: ReadonlyArray<\"indicators\"> = Object.freeze<[\"indicators\"]>([\"indicators\"]);\n const requestedIntervals: ReadonlyArray<string> = Object.freeze<string[]>([]);\n const seriesCapacities: Readonly<Record<string, number>> = Object.freeze({});\n const base = {\n apiVersion: 1 as const,\n kind: \"indicator\" as const,\n name: opts.name,\n inputs: opts.inputs ?? {},\n capabilities,\n requestedIntervals,\n userPickableInterval: false,\n seriesCapacities,\n maxLookback: 0,\n };\n const manifest = {\n ...base,\n ...(opts.overlay === undefined ? {} : { overlay: opts.overlay }),\n ...(opts.maxDrawings === undefined ? {} : { maxDrawings: opts.maxDrawings }),\n ...(opts.maxBarsBack === undefined ? {} : { maxBarsBack: opts.maxBarsBack }),\n ...(opts.format === undefined ? {} : { format: opts.format }),\n ...(opts.precision === undefined ? {} : { precision: opts.precision }),\n ...(opts.scale === undefined ? {} : { scale: opts.scale }),\n ...(opts.requiresIntervals === undefined\n ? {}\n : { requiresIntervals: opts.requiresIntervals }),\n ...(opts.shortName === undefined ? {} : { shortName: opts.shortName }),\n ...(opts.outputs === undefined ? {} : { outputs: opts.outputs }),\n };\n return Object.freeze(\n attachDepAccessorSentinels({\n manifest: Object.freeze(manifest),\n compute: opts.compute,\n }),\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"depAccessorSentinel.js","sourceRoot":"","sources":["../../src/define/depAccessorSentinel.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAI/D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAS,EAAE;IACvD,MAAM,IAAI,KAAK,CACX,GAAG,IAAI,uGAAuG,CACjH,CAAC;AACN,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACtC,IAAgE,EAC5C,EAAE,CAAC,CAAC;IACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ;IACvB,OAAO,EAAE,IAAI,CAAC,OAAO;IACrB,MAAM,EAAE,CAAC,IAAY,EAAkB,EAAE,CAAC,mBAAmB,CAAC,WAAW,IAAI,IAAI,CAAC;IAClF,UAAU,EAAE,GAAyB,EAAE,CAAC,mBAAmB,CAAC,YAAY,CAAC;CAC5E,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"depAccessorSentinel.js","sourceRoot":"","sources":["../../src/define/depAccessorSentinel.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAI/D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAS,EAAE;IACvD,MAAM,IAAI,KAAK,CACX,GAAG,IAAI,uGAAuG,CACjH,CAAC;AACN,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACtC,IAAgE,EAC5C,EAAE,CAAC,CAAC;IACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ;IACvB,OAAO,EAAE,IAAI,CAAC,OAAO;IACrB,MAAM,EAAE,CAAC,IAAY,EAAkB,EAAE,CAAC,mBAAmB,CAAC,WAAW,IAAI,IAAI,CAAC;IAClF,UAAU,EAAE,GAAyB,EAAE,CAAC,mBAAmB,CAAC,YAAY,CAAC;CAC5E,CAAC,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { CompiledScriptObject, ComputeFn, ScriptManifest, Series } from \"../types.js\";\n\n/**\n * Sentinel thrown when `output` / `withInputs` are called outside the\n * compiler-rewritten bundle path. The Phase-7 compiler statically\n * replaces every consumer-side `.output(\"title\")` call site with a\n * synthesised `__chartlang_depOutput(...)` runtime call, and every\n * `.withInputs({...})` chain with a folded dep manifest, so these\n * bodies are unreachable when the bundle is loaded normally. Hand-\n * running an un-compiled script in a unit test hits the sentinel,\n * which is the desired failure.\n *\n * @since 0.7\n * @stable\n * @example\n * try {\n * depAccessorSentinel(\"output(\\\"line\\\")\");\n * } catch (err) {\n * void (err as Error).message;\n * }\n */\nexport const depAccessorSentinel = (name: string): never => {\n throw new Error(\n `${name} can only be called on a compiled chartlang indicator binding inside another indicator's compute body`,\n );\n};\n\n/**\n * Attach the {@link depAccessorSentinel}-backed `output` /\n * `withInputs` accessors to a `{ manifest, compute }` pair so the\n * `defineIndicator` / `defineAlert` / `defineDrawing` /\n * `defineAlertCondition` constructors return a complete\n * {@link CompiledScriptObject}. The compiler rewrites both accessors\n * to static dep lookups at bundle time — the throwing bodies only\n * fire when an un-compiled module is invoked directly.\n *\n * @since 0.7\n * @stable\n * @example\n * declare const manifest: ScriptManifest;\n * declare const compute: ComputeFn;\n * const cs: CompiledScriptObject = attachDepAccessorSentinels({\n * manifest,\n * compute,\n * });\n * void cs;\n */\nexport const attachDepAccessorSentinels = (\n base: Readonly<{ manifest: ScriptManifest; compute: ComputeFn }>,\n): CompiledScriptObject => ({\n manifest: base.manifest,\n compute: base.compute,\n output: (name: string): Series<number> => depAccessorSentinel(`output(\"${name}\")`),\n withInputs: (): CompiledScriptObject => depAccessorSentinel(\"withInputs\"),\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency.js","sourceRoot":"","sources":["../../src/define/dependency.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D"}
|
|
1
|
+
{"version":3,"file":"dependency.js","sourceRoot":"","sources":["../../src/define/dependency.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { JsonValue } from \"../types.js\";\n\n/**\n * One titled output a script exposes for consumption by other\n * indicators. Derived from the producer's `plot(value, { title })`\n * calls during compile. `title` is the key consumers reference via\n * `<binding>.output(\"title\")`.\n *\n * @since 0.7\n * @stable\n * @example\n * const out: OutputDeclaration = {\n * title: \"line\",\n * kind: \"series-number\",\n * };\n * void out;\n */\nexport type OutputDeclaration = Readonly<{\n readonly title: string;\n readonly kind: \"series-number\";\n}>;\n\n/**\n * One node in a script's compiled dependency graph. Emitted by the\n * compiler's `extractDependencyGraph` pass (Task 2) and consumed by\n * the runtime's dep executor (Task 4).\n *\n * `localId` is the JavaScript binding name the consumer used —\n * `const trend = baseTrend.withInputs(...)` produces\n * `localId: \"trend\"`. Stable across script edits as long as the\n * binding name is stable.\n *\n * `producerSourcePath` is the POSIX path the compiler resolved for\n * the producer. Same-file deps use the consumer's `sourcePath`.\n *\n * `effectiveInputs` is the merge of producer defaults + every\n * `.withInputs(...)` chained on the binding, JSON-serialised.\n *\n * `outputs` mirrors the producer's `ScriptManifest.outputs` so the\n * runtime can validate consumer `.output(\"...\")` calls at mount time.\n *\n * @since 0.7\n * @stable\n * @example\n * const dep: DependencyDeclaration = {\n * localId: \"fastTrend\",\n * producerName: \"Base Trend\",\n * producerSourcePath: \"trend-confirmation.chart.ts\",\n * producerExportName: \"default\",\n * effectiveInputs: { length: 20 },\n * outputs: [{ title: \"line\", kind: \"series-number\" }],\n * isDrawn: false,\n * };\n * void dep;\n */\nexport type DependencyDeclaration = Readonly<{\n readonly localId: string;\n readonly producerName: string;\n readonly producerSourcePath: string;\n readonly producerExportName: string;\n readonly effectiveInputs: Readonly<Record<string, JsonValue>>;\n readonly outputs: ReadonlyArray<OutputDeclaration>;\n readonly isDrawn: boolean;\n}>;\n"]}
|
package/dist/define/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/define/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/define/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nexport * from \"./defineIndicator.js\";\nexport * from \"./defineAlert.js\";\nexport * from \"./defineAlertCondition.js\";\nexport * from \"./defineDrawing.js\";\nexport type { DependencyDeclaration, OutputDeclaration } from \"./dependency.js\";\nexport type { ScaleAxis, ScriptOverrides, ValueFormat } from \"./overrides.js\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../src/define/overrides.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D"}
|
|
1
|
+
{"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../src/define/overrides.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\n/**\n * Value-format hint the adapter uses for axis-label rendering. PLAN §4.1.\n * `\"price\"` formats with the symbol's quote-currency rules; `\"volume\"` uses\n * K/M/B compact notation; `\"percent\"` appends `%`; `\"compact\"` falls back to\n * K/M/B for generic non-volume values.\n *\n * @since 0.4\n * @stable\n * @example\n * const f: ValueFormat = \"percent\";\n * void f;\n */\nexport type ValueFormat = \"price\" | \"volume\" | \"percent\" | \"compact\";\n\n/**\n * Scale axis the indicator should bind to. PLAN §4.1.\n *\n * - `\"price\"` — overlay on the main price pane.\n * - `\"left\"` / `\"right\"` — sub-pane axis side.\n * - `\"new\"` — request a fresh sub-pane keyed by the script id.\n *\n * @since 0.4\n * @stable\n * @example\n * const s: ScaleAxis = \"right\";\n * void s;\n */\nexport type ScaleAxis = \"price\" | \"left\" | \"right\" | \"new\";\n\n/**\n * Author-supplied display + budget overrides. Every field is optional;\n * missing fields fall back to adapter defaults.\n *\n * @since 0.4\n * @stable\n * @example\n * const o: ScriptOverrides = {\n * shortName: \"EMA(20)\",\n * precision: 4,\n * format: \"price\",\n * };\n * void o;\n */\nexport type ScriptOverrides = Readonly<{\n /**\n * Max bars of historical lookback the script needs. `0` keeps the\n * runtime default. Pine `max_bars_back` parity.\n *\n * @since 0.4\n * @example\n * const v: ScriptOverrides[\"maxBarsBack\"] = 100;\n * void v;\n */\n maxBarsBack?: number;\n /**\n * Value-formatting hint for axis labels + cursor read-out.\n *\n * @since 0.4\n * @example\n * const v: ScriptOverrides[\"format\"] = \"price\";\n * void v;\n */\n format?: ValueFormat;\n /**\n * Decimal precision the adapter renders the indicator at. `0`-`10`;\n * `undefined` follows the symbol's default precision.\n *\n * @since 0.4\n * @example\n * const v: ScriptOverrides[\"precision\"] = 2;\n * void v;\n */\n precision?: number;\n /**\n * Scale-axis binding. Defaults to `\"price\"` for overlay indicators and\n * `\"right\"` for sub-pane indicators.\n *\n * @since 0.4\n * @example\n * const v: ScriptOverrides[\"scale\"] = \"right\";\n * void v;\n */\n scale?: ScaleAxis;\n /**\n * Intervals the script requires the adapter to ship in\n * `Capabilities.intervals`.\n *\n * @since 0.4\n * @example\n * const v: ScriptOverrides[\"requiresIntervals\"] = [\"1D\"];\n * void v;\n */\n requiresIntervals?: ReadonlyArray<string>;\n /**\n * Compact display label for legend chips. Defaults to truncated `name`.\n *\n * @since 0.4\n * @example\n * const v: ScriptOverrides[\"shortName\"] = \"EMA\";\n * void v;\n */\n shortName?: string;\n}>;\n"]}
|
package/dist/draw/buckets.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buckets.js","sourceRoot":"","sources":["../../src/draw/buckets.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"buckets.js","sourceRoot":"","sources":["../../src/draw/buckets.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { DrawingKind } from \"./drawingKind.js\";\n\n/**\n * Canonical bucket name a {@link DrawingKind} maps to under the\n * `DrawingCounts` 5-bag budget (`{ lines, labels, boxes, polylines,\n * other }`). The adapter-kit `Capabilities.maxDrawingsPerScript` and\n * the script-side `ScriptManifest.maxDrawings?` both pin the same five\n * bucket names. The runtime budget enforcer counts emissions per\n * bucket and drops the overflow with `drawing-budget-exceeded`.\n *\n * @formula bucket = KIND_BUCKET.get(kind)\n * @anchors kind: DrawingKind → bucket: \"lines\"|\"labels\"|\"boxes\"|\"polylines\"|\"other\"\n * @since 0.3\n * @stable\n * @example\n * const b: DrawingBucket = \"lines\";\n * void b;\n */\nexport type DrawingBucket = \"lines\" | \"labels\" | \"boxes\" | \"polylines\" | \"other\";\n\n/**\n * Per-kind bucket assignment. Pinned table; every entry of\n * {@link DrawingKind} appears exactly once (asserted by\n * `buckets.test.ts`).\n *\n * Mapping rationale (Phase-3 task README §\"Architecture Decisions\"):\n * lines/rays/horizontalLine/verticalLine/crossLine/trendAngle → `lines`;\n * rectangle/rotatedRectangle/triangle/circle/ellipse → `boxes`;\n * path/polyline/curves/freehand/channels/pitchforks/patterns/elliott →\n * `polylines`; text/arrow/arrowMarker/arrowMarkUp/arrowMarkDown +\n * marker → `labels`; fib / gann / cycles / containers / table → `other`.\n *\n * @formula bucket = KIND_BUCKET.get(kind)\n * @anchors kind: DrawingKind → bucket: \"lines\"|\"labels\"|\"boxes\"|\"polylines\"|\"other\"\n * @since 0.3\n * @stable\n * @example\n * import { KIND_BUCKET } from \"@invinite-org/chartlang-core\";\n * const b = KIND_BUCKET.get(\"fib-retracement\"); // \"other\"\n * void b;\n */\nexport const KIND_BUCKET: ReadonlyMap<DrawingKind, DrawingBucket> = new Map<\n DrawingKind,\n DrawingBucket\n>([\n [\"line\", \"lines\"],\n [\"horizontal-line\", \"lines\"],\n [\"horizontal-ray\", \"lines\"],\n [\"vertical-line\", \"lines\"],\n [\"cross-line\", \"lines\"],\n [\"trend-angle\", \"lines\"],\n [\"rectangle\", \"boxes\"],\n [\"rotated-rectangle\", \"boxes\"],\n [\"triangle\", \"boxes\"],\n [\"polyline\", \"polylines\"],\n [\"circle\", \"boxes\"],\n [\"ellipse\", \"boxes\"],\n [\"path\", \"polylines\"],\n [\"marker\", \"labels\"],\n [\"arc\", \"polylines\"],\n [\"curve\", \"polylines\"],\n [\"double-curve\", \"polylines\"],\n [\"pen\", \"polylines\"],\n [\"highlighter\", \"polylines\"],\n [\"brush\", \"polylines\"],\n [\"text\", \"labels\"],\n [\"arrow\", \"labels\"],\n [\"arrow-marker\", \"labels\"],\n [\"arrow-mark-up\", \"labels\"],\n [\"arrow-mark-down\", \"labels\"],\n [\"trend-channel\", \"polylines\"],\n [\"flat-top-bottom\", \"polylines\"],\n [\"disjoint-channel\", \"polylines\"],\n [\"regression-trend\", \"polylines\"],\n [\"fib-retracement\", \"other\"],\n [\"fib-trend-extension\", \"other\"],\n [\"fib-channel\", \"other\"],\n [\"fib-time-zone\", \"other\"],\n [\"fib-wedge\", \"other\"],\n [\"fib-speed-fan\", \"other\"],\n [\"fib-speed-arcs\", \"other\"],\n [\"fib-spiral\", \"other\"],\n [\"fib-circles\", \"other\"],\n [\"fib-trend-time\", \"other\"],\n [\"gann-box\", \"other\"],\n [\"gann-square-fixed\", \"other\"],\n [\"gann-square\", \"other\"],\n [\"gann-fan\", \"other\"],\n [\"pitchfork\", \"polylines\"],\n [\"pitchfan\", \"polylines\"],\n [\"xabcd-pattern\", \"polylines\"],\n [\"cypher-pattern\", \"polylines\"],\n [\"head-and-shoulders\", \"polylines\"],\n [\"abcd-pattern\", \"polylines\"],\n [\"triangle-pattern\", \"polylines\"],\n [\"three-drives-pattern\", \"polylines\"],\n [\"elliott-impulse-wave\", \"polylines\"],\n [\"elliott-correction-wave\", \"polylines\"],\n [\"elliott-triangle-wave\", \"polylines\"],\n [\"elliott-double-combo\", \"polylines\"],\n [\"elliott-triple-combo\", \"polylines\"],\n [\"cyclic-lines\", \"other\"],\n [\"time-cycles\", \"other\"],\n [\"sine-line\", \"other\"],\n [\"group\", \"other\"],\n [\"frame\", \"other\"],\n [\"table\", \"other\"],\n]);\n\n/**\n * Return the {@link DrawingBucket} for a given {@link DrawingKind}.\n * Throws if the kind is not in the map — covers the defensive branch\n * for callers that pass an unverified string (e.g. a future kind\n * round-tripped from the wire before its bucket entry lands).\n *\n * @formula bucket = KIND_BUCKET.get(kind)\n * @anchors kind: DrawingKind → bucket: \"lines\"|\"labels\"|\"boxes\"|\"polylines\"|\"other\"\n * @since 0.3\n * @stable\n * @example\n * import { bucketFor } from \"@invinite-org/chartlang-core\";\n * const bucket = bucketFor(\"rectangle\"); // \"boxes\"\n * void bucket;\n */\nexport function bucketFor(kind: DrawingKind): DrawingBucket {\n const bucket = KIND_BUCKET.get(kind);\n if (bucket === undefined) {\n throw new Error(`No bucket assigned for drawing kind '${kind}'`);\n }\n return bucket;\n}\n"]}
|
package/dist/draw/draw.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import type { AnchorHept, AnchorQuad, AnchorQuint, AnchorTriple, WorldPoint } fr
|
|
|
8
8
|
* calls — the compiler injects a callsite slot id so the runtime can
|
|
9
9
|
* track the per-handle `DrawingState` across bars — and returns a
|
|
10
10
|
* {@link DrawingHandle}. Adapters that omit a kind degrade silently
|
|
11
|
-
* with `unsupported-drawing-kind
|
|
11
|
+
* with `unsupported-drawing-kind`; excess emissions
|
|
12
12
|
* drop with `drawing-budget-exceeded` once the per-script bucket is
|
|
13
13
|
* full.
|
|
14
14
|
*
|
|
@@ -109,8 +109,7 @@ export type DrawNamespace = {
|
|
|
109
109
|
* convention as the `plot` / `hline` / `alert` stubs in
|
|
110
110
|
* `plot/plot.ts:plot` / `alert/alert.ts:alert`. The runtime swaps this
|
|
111
111
|
* stub for the real namespace at boot per the
|
|
112
|
-
* `@invinite-org/chartlang-runtime` `primitives.ts` seam
|
|
113
|
-
* §5.5).
|
|
112
|
+
* `@invinite-org/chartlang-runtime` `primitives.ts` seam.
|
|
114
113
|
*
|
|
115
114
|
* @formula N/A — namespace surface; per-method runtime impl in Tasks 5–18
|
|
116
115
|
* @anchors per-method — see the per-kind state shapes in `drawingState.ts`
|
package/dist/draw/draw.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draw.d.ts","sourceRoot":"","sources":["../../src/draw/draw.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"draw.d.ts","sourceRoot":"","sources":["../../src/draw/draw.ts"],"names":[],"mappings":"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"}
|
package/dist/draw/draw.js
CHANGED
|
@@ -7,8 +7,7 @@
|
|
|
7
7
|
* convention as the `plot` / `hline` / `alert` stubs in
|
|
8
8
|
* `plot/plot.ts:plot` / `alert/alert.ts:alert`. The runtime swaps this
|
|
9
9
|
* stub for the real namespace at boot per the
|
|
10
|
-
* `@invinite-org/chartlang-runtime` `primitives.ts` seam
|
|
11
|
-
* §5.5).
|
|
10
|
+
* `@invinite-org/chartlang-runtime` `primitives.ts` seam.
|
|
12
11
|
*
|
|
13
12
|
* @formula N/A — namespace surface; per-method runtime impl in Tasks 5–18
|
|
14
13
|
* @anchors per-method — see the per-kind state shapes in `drawingState.ts`
|
package/dist/draw/draw.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draw.js","sourceRoot":"","sources":["../../src/draw/draw.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAiJ/D
|
|
1
|
+
{"version":3,"file":"draw.js","sourceRoot":"","sources":["../../src/draw/draw.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAiJ/D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,IAAI,GAAkB,cAAc,EAAE,CAAC;AAEpD,SAAS,cAAc;IACnB,MAAM,OAAO,GAAgC;QACzC,GAAG,CAAC,OAAO,EAAE,QAAQ;YACjB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC9B,OAAO,cAAc,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC;KACJ,CAAC;IACF,OAAO,IAAI,KAAK,CAAC,EAAmB,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,cAAc,CAAC,SAAiB;IACrC,OAAO,GAAU,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,kCAAkC,CAAC,CAAC;IACpE,CAAC,CAAC;AACN,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { Price, Time } from \"../types.js\";\nimport type {\n ArrowMarkerOpts,\n ArrowOpts,\n BrushStyle,\n FibOpts,\n FrameOpts,\n HighlighterStyle,\n LineDrawStyle,\n PathOpts,\n RegressionTrendOpts,\n ShapeStyle,\n TextOpts,\n} from \"./drawingStyle.js\";\nimport type { DrawingHandle } from \"./handle.js\";\nimport type { TableOpts } from \"./table.js\";\nimport type {\n AnchorHept,\n AnchorQuad,\n AnchorQuint,\n AnchorTriple,\n WorldPoint,\n} from \"./worldPoint.js\";\n\n/**\n * The script-facing `draw.*` namespace. Each method is stateful across\n * calls — the compiler injects a callsite slot id so the runtime can\n * track the per-handle `DrawingState` across bars — and returns a\n * {@link DrawingHandle}. Adapters that omit a kind degrade silently\n * with `unsupported-drawing-kind`; excess emissions\n * drop with `drawing-budget-exceeded` once the per-script bucket is\n * full.\n *\n * Every kind lives as a FLAT method directly on `DrawNamespace` —\n * script authors call `draw.fibRetracement(a, b)` /\n * `draw.gannBox(a, b)` / `draw.elliottImpulseWave(anchors)` /\n * `draw.xabcdPattern(anchors)`, matching the flat camelCase names in\n * `STATEFUL_PRIMITIVES` and Pine + invinite parity. The wire format\n * keeps the kebab-case `DrawingKind`.\n *\n * Phase-3 implementations live in `@invinite-org/chartlang-runtime`;\n * this file ships the script-author type plus a throwing-stub `draw`\n * value (mirrors `plot/plot.ts:plot`). Tasks 5–18 land the runtime\n * impl per category.\n *\n * @formula N/A — namespace surface; per-method runtime impl in Tasks 5–18\n * @anchors per-method — see the per-kind state shapes in `drawingState.ts`\n * @since 0.3\n * @stable\n * @example\n * import type { DrawNamespace } from \"@invinite-org/chartlang-core\";\n * const _ns: DrawNamespace | null = null;\n * void _ns;\n */\nexport type DrawNamespace = {\n // Lines / Rays (Task 5)\n line(a: WorldPoint, b: WorldPoint, opts?: LineDrawStyle): DrawingHandle;\n horizontalLine(price: Price, opts?: LineDrawStyle): DrawingHandle;\n horizontalRay(anchor: WorldPoint, opts?: LineDrawStyle): DrawingHandle;\n verticalLine(time: Time, opts?: LineDrawStyle): DrawingHandle;\n crossLine(anchor: WorldPoint, opts?: LineDrawStyle): DrawingHandle;\n trendAngle(a: WorldPoint, b: WorldPoint, opts?: LineDrawStyle): DrawingHandle;\n // Boxes A (Task 6)\n rectangle(a: WorldPoint, b: WorldPoint, opts?: ShapeStyle): DrawingHandle;\n rotatedRectangle(anchors: AnchorQuad, opts?: ShapeStyle): DrawingHandle;\n triangle(anchors: AnchorTriple, opts?: ShapeStyle): DrawingHandle;\n polyline(anchors: ReadonlyArray<WorldPoint>, opts?: LineDrawStyle): DrawingHandle;\n // Boxes B (Task 7)\n circle(centre: WorldPoint, radiusAnchor: WorldPoint, opts?: ShapeStyle): DrawingHandle;\n ellipse(a: WorldPoint, b: WorldPoint, opts?: ShapeStyle): DrawingHandle;\n path(anchors: ReadonlyArray<WorldPoint>, opts?: PathOpts): DrawingHandle;\n marker(\n anchor: WorldPoint,\n opts?: TextOpts & { readonly text?: string; readonly value?: number },\n ): DrawingHandle;\n // Curves (Task 8)\n arc(anchors: AnchorTriple, opts?: LineDrawStyle): DrawingHandle;\n curve(anchors: AnchorTriple, opts?: LineDrawStyle): DrawingHandle;\n doubleCurve(anchors: AnchorQuint, opts?: LineDrawStyle): DrawingHandle;\n // Freehand (Task 8)\n pen(anchors: ReadonlyArray<WorldPoint>, opts?: LineDrawStyle): DrawingHandle;\n highlighter(anchors: ReadonlyArray<WorldPoint>, opts: HighlighterStyle): DrawingHandle;\n brush(anchors: ReadonlyArray<WorldPoint>, opts: BrushStyle): DrawingHandle;\n // Annotations (Task 9)\n text(anchor: WorldPoint, body: string, opts?: TextOpts): DrawingHandle;\n arrow(a: WorldPoint, b: WorldPoint, opts?: ArrowOpts): DrawingHandle;\n arrowMarker(anchor: WorldPoint, opts?: ArrowMarkerOpts): DrawingHandle;\n arrowMarkUp(anchor: WorldPoint, opts?: ArrowMarkerOpts): DrawingHandle;\n arrowMarkDown(anchor: WorldPoint, opts?: ArrowMarkerOpts): DrawingHandle;\n // Channels (Task 10)\n trendChannel(anchors: AnchorTriple, opts?: LineDrawStyle): DrawingHandle;\n flatTopBottom(anchors: AnchorTriple, opts?: LineDrawStyle): DrawingHandle;\n disjointChannel(anchors: AnchorQuad, opts?: LineDrawStyle): DrawingHandle;\n regressionTrend(a: WorldPoint, b: WorldPoint, opts?: RegressionTrendOpts): DrawingHandle;\n // Fibonacci A (Task 11)\n fibRetracement(a: WorldPoint, b: WorldPoint, opts?: FibOpts): DrawingHandle;\n fibTrendExtension(anchors: AnchorTriple, opts?: FibOpts): DrawingHandle;\n fibChannel(anchors: AnchorTriple, opts?: FibOpts): DrawingHandle;\n fibTimeZone(a: WorldPoint, b: WorldPoint, opts?: FibOpts): DrawingHandle;\n fibWedge(anchors: AnchorTriple, opts?: FibOpts): DrawingHandle;\n // Fibonacci B (Task 12)\n fibSpeedFan(a: WorldPoint, b: WorldPoint, opts?: FibOpts): DrawingHandle;\n fibSpeedArcs(a: WorldPoint, b: WorldPoint, opts?: FibOpts): DrawingHandle;\n fibSpiral(a: WorldPoint, b: WorldPoint, opts?: FibOpts): DrawingHandle;\n fibCircles(a: WorldPoint, b: WorldPoint, opts?: FibOpts): DrawingHandle;\n fibTrendTime(anchors: AnchorTriple, opts?: FibOpts): DrawingHandle;\n // Gann (Task 13)\n gannBox(a: WorldPoint, b: WorldPoint, opts?: LineDrawStyle): DrawingHandle;\n gannSquareFixed(anchor: WorldPoint, opts?: LineDrawStyle): DrawingHandle;\n gannSquare(a: WorldPoint, b: WorldPoint, opts?: LineDrawStyle): DrawingHandle;\n gannFan(a: WorldPoint, b: WorldPoint, opts?: LineDrawStyle): DrawingHandle;\n // Pitchforks (Task 14)\n pitchfork(\n anchors: AnchorTriple,\n opts?: LineDrawStyle & {\n readonly variant?: \"standard\" | \"schiff\" | \"modifiedSchiff\" | \"inside\";\n },\n ): DrawingHandle;\n pitchfan(anchors: AnchorTriple, opts?: LineDrawStyle): DrawingHandle;\n // Harmonic Patterns (Task 15)\n xabcdPattern(anchors: AnchorQuint, opts?: LineDrawStyle): DrawingHandle;\n cypherPattern(anchors: AnchorQuint, opts?: LineDrawStyle): DrawingHandle;\n headAndShoulders(anchors: AnchorQuint, opts?: LineDrawStyle): DrawingHandle;\n abcdPattern(anchors: AnchorQuad, opts?: LineDrawStyle): DrawingHandle;\n trianglePattern(anchors: AnchorTriple, opts?: LineDrawStyle): DrawingHandle;\n threeDrivesPattern(anchors: AnchorHept, opts?: LineDrawStyle): DrawingHandle;\n // Elliott Waves (Task 16)\n elliottImpulseWave(anchors: AnchorQuint, opts?: LineDrawStyle): DrawingHandle;\n elliottCorrectionWave(anchors: AnchorTriple, opts?: LineDrawStyle): DrawingHandle;\n elliottTriangleWave(anchors: AnchorQuint, opts?: LineDrawStyle): DrawingHandle;\n elliottDoubleCombo(anchors: AnchorHept, opts?: LineDrawStyle): DrawingHandle;\n elliottTripleCombo(anchors: AnchorHept, opts?: LineDrawStyle): DrawingHandle;\n // Cycles (Task 17)\n cyclicLines(a: WorldPoint, b: WorldPoint, opts?: LineDrawStyle): DrawingHandle;\n timeCycles(a: WorldPoint, b: WorldPoint, opts?: LineDrawStyle): DrawingHandle;\n sineLine(a: WorldPoint, b: WorldPoint, opts?: LineDrawStyle): DrawingHandle;\n // Containers (Task 18)\n group(childHandleIds: ReadonlyArray<string>): DrawingHandle;\n frame(a: WorldPoint, b: WorldPoint, opts?: FrameOpts): DrawingHandle;\n // Viewport overlays (Phase 5)\n table(opts: TableOpts): DrawingHandle;\n};\n\n/**\n * Compile-time callable hole for the `draw.*` namespace. Every `get`\n * on the proxy returns a function that throws the\n * `\"draw.<method> called outside compiled runtime\"` sentinel — same\n * convention as the `plot` / `hline` / `alert` stubs in\n * `plot/plot.ts:plot` / `alert/alert.ts:alert`. The runtime swaps this\n * stub for the real namespace at boot per the\n * `@invinite-org/chartlang-runtime` `primitives.ts` seam.\n *\n * @formula N/A — namespace surface; per-method runtime impl in Tasks 5–18\n * @anchors per-method — see the per-kind state shapes in `drawingState.ts`\n * @since 0.3\n * @stable\n * @example\n * import { draw } from \"@invinite-org/chartlang-core\";\n * try {\n * draw.horizontalLine(0);\n * } catch {\n * // expected: \"draw.horizontalLine called outside compiled runtime\"\n * }\n */\nexport const draw: DrawNamespace = createDrawStub();\n\nfunction createDrawStub(): DrawNamespace {\n const handler: ProxyHandler<DrawNamespace> = {\n get(_target, property): unknown {\n const name = String(property);\n return throwingMethod(`draw.${name}`);\n },\n };\n return new Proxy({} as DrawNamespace, handler);\n}\n\nfunction throwingMethod(qualified: string): () => never {\n return (): never => {\n throw new Error(`${qualified} called outside compiled runtime`);\n };\n}\n"]}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* camelCase (`draw.horizontalLine(...)`). See {@link KIND_CAMELCASE} for
|
|
5
5
|
* the canonical bijection.
|
|
6
6
|
*
|
|
7
|
-
* Variant collapses
|
|
7
|
+
* Variant collapses:
|
|
8
8
|
*
|
|
9
9
|
* - `ray` / `extended-line` collapse into `line` with `extendLeft` /
|
|
10
10
|
* `extendRight` flags on the state.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawingKind.js","sourceRoot":"","sources":["../../src/draw/drawingKind.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"drawingKind.js","sourceRoot":"","sources":["../../src/draw/drawingKind.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\n/**\n * The full set of 62 drawing kinds chartlang supports through `draw.*`.\n * The wire format is kebab-case; the TypeScript script surface is\n * camelCase (`draw.horizontalLine(...)`). See {@link KIND_CAMELCASE} for\n * the canonical bijection.\n *\n * Variant collapses:\n *\n * - `ray` / `extended-line` collapse into `line` with `extendLeft` /\n * `extendRight` flags on the state.\n * - The 4 invinite pitchfork tools (`standard` / `schiff` /\n * `modifiedSchiff` / `inside`) collapse into `pitchfork` with a\n * `variant` discriminator on the state.\n * - `cypher-pattern` has no standalone tool — emittable only through\n * `defineDrawing` (Task 20).\n *\n * Order pinned: lines (6) → boxes (8) → curves (3) → freehand (3) →\n * annotations (5) → channels (4) → fib (10) → gann (4) → pitchforks (2)\n * → patterns (6) → elliott (5) → cycles (3) → containers (2) → viewport\n * overlays (1) = 62. The order is wire-stable — downstream consumers iterate\n * {@link DRAWING_KINDS} in this order for diagnostic readability.\n *\n * @formula N/A — discriminator constant set\n * @anchors 62 kebab-case kind names; see {@link DRAWING_KINDS}\n * @since 0.3\n * @stable\n * @example\n * const k: DrawingKind = \"fib-retracement\";\n * void k;\n */\nexport type DrawingKind =\n // Lines / Rays (6)\n | \"line\"\n | \"horizontal-line\"\n | \"horizontal-ray\"\n | \"vertical-line\"\n | \"cross-line\"\n | \"trend-angle\"\n // Boxes / Shapes (8)\n | \"rectangle\"\n | \"rotated-rectangle\"\n | \"triangle\"\n | \"polyline\"\n | \"circle\"\n | \"ellipse\"\n | \"path\"\n | \"marker\"\n // Curves (3)\n | \"arc\"\n | \"curve\"\n | \"double-curve\"\n // Freehand (3)\n | \"pen\"\n | \"highlighter\"\n | \"brush\"\n // Annotations (5)\n | \"text\"\n | \"arrow\"\n | \"arrow-marker\"\n | \"arrow-mark-up\"\n | \"arrow-mark-down\"\n // Channels (4)\n | \"trend-channel\"\n | \"flat-top-bottom\"\n | \"disjoint-channel\"\n | \"regression-trend\"\n // Fibonacci (10)\n | \"fib-retracement\"\n | \"fib-trend-extension\"\n | \"fib-channel\"\n | \"fib-time-zone\"\n | \"fib-wedge\"\n | \"fib-speed-fan\"\n | \"fib-speed-arcs\"\n | \"fib-spiral\"\n | \"fib-circles\"\n | \"fib-trend-time\"\n // Gann (4)\n | \"gann-box\"\n | \"gann-square-fixed\"\n | \"gann-square\"\n | \"gann-fan\"\n // Pitchforks (2)\n | \"pitchfork\"\n | \"pitchfan\"\n // Harmonic Patterns (6)\n | \"xabcd-pattern\"\n | \"cypher-pattern\"\n | \"head-and-shoulders\"\n | \"abcd-pattern\"\n | \"triangle-pattern\"\n | \"three-drives-pattern\"\n // Elliott Waves (5)\n | \"elliott-impulse-wave\"\n | \"elliott-correction-wave\"\n | \"elliott-triangle-wave\"\n | \"elliott-double-combo\"\n | \"elliott-triple-combo\"\n // Cycles (3)\n | \"cyclic-lines\"\n | \"time-cycles\"\n | \"sine-line\"\n // Containers (2)\n | \"group\"\n | \"frame\"\n // Viewport overlays (1)\n | \"table\";\n\n/**\n * Iterable form of {@link DrawingKind}. Order matches the type\n * declaration so docs / validators / dispatchers can walk the set in a\n * single canonical order. Frozen.\n *\n * @formula N/A — discriminator constant set\n * @anchors 62 kebab-case kind names; see {@link DRAWING_KINDS}\n * @since 0.3\n * @stable\n * @example\n * import { DRAWING_KINDS } from \"@invinite-org/chartlang-core\";\n * for (const k of DRAWING_KINDS) {\n * void k;\n * }\n */\nexport const DRAWING_KINDS: ReadonlyArray<DrawingKind> = Object.freeze([\n \"line\",\n \"horizontal-line\",\n \"horizontal-ray\",\n \"vertical-line\",\n \"cross-line\",\n \"trend-angle\",\n \"rectangle\",\n \"rotated-rectangle\",\n \"triangle\",\n \"polyline\",\n \"circle\",\n \"ellipse\",\n \"path\",\n \"marker\",\n \"arc\",\n \"curve\",\n \"double-curve\",\n \"pen\",\n \"highlighter\",\n \"brush\",\n \"text\",\n \"arrow\",\n \"arrow-marker\",\n \"arrow-mark-up\",\n \"arrow-mark-down\",\n \"trend-channel\",\n \"flat-top-bottom\",\n \"disjoint-channel\",\n \"regression-trend\",\n \"fib-retracement\",\n \"fib-trend-extension\",\n \"fib-channel\",\n \"fib-time-zone\",\n \"fib-wedge\",\n \"fib-speed-fan\",\n \"fib-speed-arcs\",\n \"fib-spiral\",\n \"fib-circles\",\n \"fib-trend-time\",\n \"gann-box\",\n \"gann-square-fixed\",\n \"gann-square\",\n \"gann-fan\",\n \"pitchfork\",\n \"pitchfan\",\n \"xabcd-pattern\",\n \"cypher-pattern\",\n \"head-and-shoulders\",\n \"abcd-pattern\",\n \"triangle-pattern\",\n \"three-drives-pattern\",\n \"elliott-impulse-wave\",\n \"elliott-correction-wave\",\n \"elliott-triangle-wave\",\n \"elliott-double-combo\",\n \"elliott-triple-combo\",\n \"cyclic-lines\",\n \"time-cycles\",\n \"sine-line\",\n \"group\",\n \"frame\",\n \"table\",\n] as const satisfies ReadonlyArray<DrawingKind>);\n\n/**\n * camelCase TypeScript-surface name for every kind. Used by the editor\n * + gen-docs + the compiler's `STATEFUL_PRIMITIVES` lookup so a script\n * author writes `draw.horizontalLine(...)` while the wire format stays\n * kebab-case (`horizontal-line`). The bijection round-trips through\n * {@link KIND_KEBABCASE}.\n *\n * @formula N/A — discriminator constant set\n * @anchors 62 kebab-case kind names; see {@link DRAWING_KINDS}\n * @since 0.3\n * @stable\n * @example\n * import { KIND_CAMELCASE } from \"@invinite-org/chartlang-core\";\n * const camel = KIND_CAMELCASE.get(\"horizontal-line\"); // \"horizontalLine\"\n * void camel;\n */\nexport const KIND_CAMELCASE: ReadonlyMap<DrawingKind, string> = new Map<DrawingKind, string>([\n [\"line\", \"line\"],\n [\"horizontal-line\", \"horizontalLine\"],\n [\"horizontal-ray\", \"horizontalRay\"],\n [\"vertical-line\", \"verticalLine\"],\n [\"cross-line\", \"crossLine\"],\n [\"trend-angle\", \"trendAngle\"],\n [\"rectangle\", \"rectangle\"],\n [\"rotated-rectangle\", \"rotatedRectangle\"],\n [\"triangle\", \"triangle\"],\n [\"polyline\", \"polyline\"],\n [\"circle\", \"circle\"],\n [\"ellipse\", \"ellipse\"],\n [\"path\", \"path\"],\n [\"marker\", \"marker\"],\n [\"arc\", \"arc\"],\n [\"curve\", \"curve\"],\n [\"double-curve\", \"doubleCurve\"],\n [\"pen\", \"pen\"],\n [\"highlighter\", \"highlighter\"],\n [\"brush\", \"brush\"],\n [\"text\", \"text\"],\n [\"arrow\", \"arrow\"],\n [\"arrow-marker\", \"arrowMarker\"],\n [\"arrow-mark-up\", \"arrowMarkUp\"],\n [\"arrow-mark-down\", \"arrowMarkDown\"],\n [\"trend-channel\", \"trendChannel\"],\n [\"flat-top-bottom\", \"flatTopBottom\"],\n [\"disjoint-channel\", \"disjointChannel\"],\n [\"regression-trend\", \"regressionTrend\"],\n [\"fib-retracement\", \"fibRetracement\"],\n [\"fib-trend-extension\", \"fibTrendExtension\"],\n [\"fib-channel\", \"fibChannel\"],\n [\"fib-time-zone\", \"fibTimeZone\"],\n [\"fib-wedge\", \"fibWedge\"],\n [\"fib-speed-fan\", \"fibSpeedFan\"],\n [\"fib-speed-arcs\", \"fibSpeedArcs\"],\n [\"fib-spiral\", \"fibSpiral\"],\n [\"fib-circles\", \"fibCircles\"],\n [\"fib-trend-time\", \"fibTrendTime\"],\n [\"gann-box\", \"gannBox\"],\n [\"gann-square-fixed\", \"gannSquareFixed\"],\n [\"gann-square\", \"gannSquare\"],\n [\"gann-fan\", \"gannFan\"],\n [\"pitchfork\", \"pitchfork\"],\n [\"pitchfan\", \"pitchfan\"],\n [\"xabcd-pattern\", \"xabcdPattern\"],\n [\"cypher-pattern\", \"cypherPattern\"],\n [\"head-and-shoulders\", \"headAndShoulders\"],\n [\"abcd-pattern\", \"abcdPattern\"],\n [\"triangle-pattern\", \"trianglePattern\"],\n [\"three-drives-pattern\", \"threeDrivesPattern\"],\n [\"elliott-impulse-wave\", \"elliottImpulseWave\"],\n [\"elliott-correction-wave\", \"elliottCorrectionWave\"],\n [\"elliott-triangle-wave\", \"elliottTriangleWave\"],\n [\"elliott-double-combo\", \"elliottDoubleCombo\"],\n [\"elliott-triple-combo\", \"elliottTripleCombo\"],\n [\"cyclic-lines\", \"cyclicLines\"],\n [\"time-cycles\", \"timeCycles\"],\n [\"sine-line\", \"sineLine\"],\n [\"group\", \"group\"],\n [\"frame\", \"frame\"],\n [\"table\", \"table\"],\n]);\n\n/**\n * Inverse of {@link KIND_CAMELCASE} — camelCase TypeScript surface\n * name → kebab-case wire kind. Derived from `KIND_CAMELCASE` so the\n * two maps cannot drift.\n *\n * @formula N/A — discriminator constant set\n * @anchors 62 kebab-case kind names; see {@link DRAWING_KINDS}\n * @since 0.3\n * @stable\n * @example\n * import { KIND_KEBABCASE } from \"@invinite-org/chartlang-core\";\n * const kebab = KIND_KEBABCASE.get(\"horizontalLine\"); // \"horizontal-line\"\n * void kebab;\n */\nexport const KIND_KEBABCASE: ReadonlyMap<string, DrawingKind> = new Map<string, DrawingKind>(\n Array.from(KIND_CAMELCASE, ([kebab, camel]) => [camel, kebab]),\n);\n"]}
|
|
@@ -5,7 +5,7 @@ import type { AnchorHept, AnchorPair, AnchorQuad, AnchorQuint, AnchorTriple, Wor
|
|
|
5
5
|
/**
|
|
6
6
|
* Script-mutable metadata fields every {@link DrawingState} variant
|
|
7
7
|
* carries. `name` surfaces in the editor layer; `visible: false` hides
|
|
8
|
-
* the drawing without removing it.
|
|
8
|
+
* the drawing without removing it.
|
|
9
9
|
*
|
|
10
10
|
* @formula N/A — metadata only, no geometry
|
|
11
11
|
* @anchors N/A — script-author metadata
|
|
@@ -22,7 +22,7 @@ export type DrawingMeta = {
|
|
|
22
22
|
/**
|
|
23
23
|
* `line` — two-anchor straight line. Carries `extendLeft` /
|
|
24
24
|
* `extendRight` flags so the invinite `ray` / `extended-line` tools
|
|
25
|
-
* collapse into this single kind
|
|
25
|
+
* collapse into this single kind.
|
|
26
26
|
*
|
|
27
27
|
* @formula identity — segment between `anchors[0]` and `anchors[1]`
|
|
28
28
|
* @anchors anchors: [from, to]
|
|
@@ -936,7 +936,7 @@ export type GannFanState = DrawingMeta & {
|
|
|
936
936
|
/**
|
|
937
937
|
* `pitchfork` — Andrews pitchfork. The `variant` discriminator collapses
|
|
938
938
|
* the four invinite tools (`standard` / `schiff` / `modifiedSchiff` /
|
|
939
|
-
* `inside`) into one kind
|
|
939
|
+
* `inside`) into one kind.
|
|
940
940
|
*
|
|
941
941
|
* @formula median + two parallels through `anchors[1]` / `anchors[2]`
|
|
942
942
|
* @anchors anchors: [pivot, high, low]; variant: "standard"|"schiff"|"modifiedSchiff"|"inside"
|
|
@@ -1368,7 +1368,7 @@ export type FrameState = DrawingMeta & {
|
|
|
1368
1368
|
/**
|
|
1369
1369
|
* `table` — CSS-pixel viewport-anchored dashboard/status panel. It
|
|
1370
1370
|
* deliberately carries no world-space anchors; adapters resolve
|
|
1371
|
-
* `position` against the current viewport
|
|
1371
|
+
* `position` against the current viewport.
|
|
1372
1372
|
*
|
|
1373
1373
|
* @formula N/A — table layout resolved in CSS pixels by adapter
|
|
1374
1374
|
* @anchors position: CSS viewport anchor
|
|
@@ -1397,7 +1397,7 @@ export type TableState = DrawingMeta & {
|
|
|
1397
1397
|
* Per-kind state union — every {@link DrawingKind} maps to exactly one
|
|
1398
1398
|
* variant. Collab-only fields (Yjs `id`, `layerId`, `createdAt`,
|
|
1399
1399
|
* `authorId`, `parentGroupId`, `parentFrameId`, `visibleIntervals`)
|
|
1400
|
-
* from the invinite source are stripped
|
|
1400
|
+
* from the invinite source are stripped.
|
|
1401
1401
|
*
|
|
1402
1402
|
* The 62 variants here are intentionally minimal shells. Tasks 5–18
|
|
1403
1403
|
* (per-category ports) refine each variant's geometry + style payload
|