textmode.synth.js 1.0.0-beta.1 → 1.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +104 -121
  3. package/dist/textmode.synth.esm.js +491 -410
  4. package/dist/textmode.synth.umd.js +31 -52
  5. package/dist/types/api/index.d.ts +7 -0
  6. package/dist/types/api/index.d.ts.map +1 -0
  7. package/dist/types/api/sources.d.ts +327 -0
  8. package/dist/types/api/sources.d.ts.map +1 -0
  9. package/dist/types/augmentations/index.d.ts +7 -0
  10. package/dist/types/augmentations/index.d.ts.map +1 -0
  11. package/dist/types/augmentations/textmode.d.ts +65 -0
  12. package/dist/types/augmentations/textmode.d.ts.map +1 -0
  13. package/dist/types/bootstrap.d.ts +11 -0
  14. package/dist/types/bootstrap.d.ts.map +1 -0
  15. package/dist/types/compiler/ExternalLayerManager.d.ts +60 -0
  16. package/dist/types/compiler/ExternalLayerManager.d.ts.map +1 -0
  17. package/dist/types/compiler/FeedbackTracker.d.ts +53 -0
  18. package/dist/types/compiler/FeedbackTracker.d.ts.map +1 -0
  19. package/dist/types/compiler/GLSLGenerator.d.ts +2 -2
  20. package/dist/types/compiler/GLSLGenerator.d.ts.map +1 -1
  21. package/dist/types/compiler/SynthCompiler.d.ts +7 -1
  22. package/dist/types/compiler/SynthCompiler.d.ts.map +1 -1
  23. package/dist/types/compiler/TransformCodeGenerator.d.ts +77 -0
  24. package/dist/types/compiler/TransformCodeGenerator.d.ts.map +1 -0
  25. package/dist/types/compiler/UniformManager.d.ts.map +1 -1
  26. package/dist/types/compiler/index.d.ts +14 -3
  27. package/dist/types/compiler/index.d.ts.map +1 -1
  28. package/dist/types/compiler/types.d.ts +7 -7
  29. package/dist/types/compiler/types.d.ts.map +1 -1
  30. package/dist/types/core/GlobalState.d.ts +30 -0
  31. package/dist/types/core/GlobalState.d.ts.map +1 -0
  32. package/dist/types/core/ISynthSource.d.ts +173 -202
  33. package/dist/types/core/ISynthSource.d.ts.map +1 -1
  34. package/dist/types/core/SynthChain.d.ts +0 -2
  35. package/dist/types/core/SynthChain.d.ts.map +1 -1
  36. package/dist/types/core/SynthSource.d.ts +4 -3
  37. package/dist/types/core/SynthSource.d.ts.map +1 -1
  38. package/dist/types/core/index.d.ts +9 -3
  39. package/dist/types/core/index.d.ts.map +1 -1
  40. package/dist/types/core/types.d.ts +57 -4
  41. package/dist/types/core/types.d.ts.map +1 -1
  42. package/dist/types/extensions/index.d.ts +10 -0
  43. package/dist/types/extensions/index.d.ts.map +1 -0
  44. package/dist/types/extensions/textmodelayer.d.ts +22 -0
  45. package/dist/types/extensions/textmodelayer.d.ts.map +1 -0
  46. package/dist/types/extensions/textmodifier.d.ts +11 -0
  47. package/dist/types/extensions/textmodifier.d.ts.map +1 -0
  48. package/dist/types/index.d.ts +11 -364
  49. package/dist/types/index.d.ts.map +1 -1
  50. package/dist/types/lifecycle/index.d.ts +10 -0
  51. package/dist/types/lifecycle/index.d.ts.map +1 -0
  52. package/dist/types/lifecycle/synthDispose.d.ts +11 -0
  53. package/dist/types/lifecycle/synthDispose.d.ts.map +1 -0
  54. package/dist/types/lifecycle/synthRender.d.ts +11 -0
  55. package/dist/types/lifecycle/synthRender.d.ts.map +1 -0
  56. package/dist/types/{SynthPlugin.d.ts → plugin/SynthPlugin.d.ts} +1 -1
  57. package/dist/types/plugin/SynthPlugin.d.ts.map +1 -0
  58. package/dist/types/plugin/constants.d.ts +5 -0
  59. package/dist/types/plugin/constants.d.ts.map +1 -0
  60. package/dist/types/plugin/index.d.ts +10 -0
  61. package/dist/types/plugin/index.d.ts.map +1 -0
  62. package/dist/types/transforms/TransformDefinition.d.ts +0 -12
  63. package/dist/types/transforms/TransformDefinition.d.ts.map +1 -1
  64. package/dist/types/transforms/TransformFactory.d.ts +4 -7
  65. package/dist/types/transforms/TransformFactory.d.ts.map +1 -1
  66. package/dist/types/transforms/TransformRegistry.d.ts +3 -6
  67. package/dist/types/transforms/TransformRegistry.d.ts.map +1 -1
  68. package/dist/types/transforms/categories/colors.d.ts +1 -1
  69. package/dist/types/transforms/categories/colors.d.ts.map +1 -1
  70. package/dist/types/transforms/categories/combine.d.ts.map +1 -1
  71. package/dist/types/transforms/categories/index.d.ts +3 -4
  72. package/dist/types/transforms/categories/index.d.ts.map +1 -1
  73. package/dist/types/transforms/categories/sources.d.ts.map +1 -1
  74. package/dist/types/{lib → utils}/ArrayUtils.d.ts +20 -5
  75. package/dist/types/utils/ArrayUtils.d.ts.map +1 -0
  76. package/dist/types/utils/CharacterResolver.d.ts.map +1 -1
  77. package/dist/types/utils/collectExternalLayerRefs.d.ts +7 -0
  78. package/dist/types/utils/collectExternalLayerRefs.d.ts.map +1 -0
  79. package/dist/types/utils/index.d.ts +12 -0
  80. package/dist/types/utils/index.d.ts.map +1 -0
  81. package/package.json +16 -9
  82. package/dist/types/SynthPlugin.d.ts.map +0 -1
  83. package/dist/types/lib/ArrayUtils.d.ts.map +0 -1
  84. package/dist/types/transforms/categories/charModifiers.d.ts +0 -16
  85. package/dist/types/transforms/categories/charModifiers.d.ts.map +0 -1
@@ -50,18 +50,33 @@ export type EasingFunction = keyof typeof EASING_FUNCTIONS | ((t: number) => num
50
50
  /**
51
51
  * Extended array interface with modulation methods.
52
52
  *
53
- * Arrays in textmode.synth.js behave like Hydra - they cycle through values over time,
53
+ * Arrays in textmode.synth.js behave like hydra - they cycle through values over time,
54
54
  * creating dynamic, time-varying parameters. This enables complex animations without
55
55
  * manually tracking time or state.
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * const t = textmode.create({
60
+ * width: 800,
61
+ * height: 600,
62
+ * plugins: [SynthPlugin]
63
+ * });
64
+ *
65
+ * // Rotating shape with eased animation
66
+ * t.layers.base.synth(
67
+ * shape(4)
68
+ * .rotate([-3.14, 3.14].ease('easeInOutCubic'))
69
+ * );
70
+ * ```
56
71
  */
57
72
  export interface ModulatedArray extends Array<number> {
58
- /** Speed multiplier for array cycling */
73
+ /** Speed multiplier for array cycling @ignore */
59
74
  _speed?: number;
60
- /** Smoothing amount (0-1) for interpolation */
75
+ /** Smoothing amount (0-1) for interpolation @ignore */
61
76
  _smooth?: number;
62
- /** Easing function for interpolation */
77
+ /** Easing function for interpolation @ignore */
63
78
  _ease?: (t: number) => number;
64
- /** Time offset for array cycling */
79
+ /** Time offset for array cycling @ignore */
65
80
  _offset?: number;
66
81
  /**
67
82
  * Set speed multiplier for array cycling.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArrayUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/ArrayUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,gBAAgB;gBAChB,MAAM;oBACF,MAAM;qBACL,MAAM;uBACJ,MAAM;qBACR,MAAM;sBACL,MAAM;wBACJ,MAAM;qBAET,MAAM;sBACL,MAAM;wBACJ,MAAM;qBACT,MAAM;sBACL,MAAM;wBACJ,MAAM;aAEjB,MAAM;CACf,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,gBAAgB,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;AAErF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,MAAM,CAAC;IACpD,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9B,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,IAAI,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAEjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC;CAC/C;AAgBD;;;GAGG;AACH,wBAAgB,cAAc,IAAI,IAAI,CA8CrC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,CAuB5E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE"}
@@ -1 +1 @@
1
- {"version":3,"file":"CharacterResolver.d.ts","sourceRoot":"","sources":["../../../src/utils/CharacterResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;GAGG;AACH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,gBAAgB,CAAC,CAAa;IACtC,OAAO,CAAC,uBAAuB,CAAK;IACpC,OAAO,CAAC,UAAU,CAAM;IAExB;;;;;OAKG;IACI,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,UAAU;IAiCtD,UAAU,IAAI,IAAI;CAK5B"}
1
+ {"version":3,"file":"CharacterResolver.d.ts","sourceRoot":"","sources":["../../../src/utils/CharacterResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;GAGG;AACH,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,gBAAgB,CAAC,CAAa;IACtC,OAAO,CAAC,uBAAuB,CAAK;IACpC,OAAO,CAAC,UAAU,CAAM;IAExB;;;;;OAKG;IACI,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,UAAU;IAiCtD,UAAU,IAAI,IAAI;CAKzB"}
@@ -0,0 +1,7 @@
1
+ import type { TextmodeLayer } from 'textmode.js/layering';
2
+ import type { SynthSource } from '../core/SynthSource';
3
+ /**
4
+ * Collect all external layer references from a SynthSource and its nested chains.
5
+ */
6
+ export declare function collectExternalLayerRefs(source: SynthSource): Map<string, TextmodeLayer>;
7
+ //# sourceMappingURL=collectExternalLayerRefs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collectExternalLayerRefs.d.ts","sourceRoot":"","sources":["../../../src/utils/collectExternalLayerRefs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAyCxF"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Utilities module exports.
3
+ *
4
+ * This module provides utility classes and functions used throughout
5
+ * the synth engine.
6
+ *
7
+ * @module
8
+ */
9
+ export { EASING_FUNCTIONS, initArrayUtils, getArrayValue, isModulatedArray, type EasingFunction, type ModulatedArray, } from './ArrayUtils';
10
+ export { CharacterResolver } from './CharacterResolver';
11
+ export { collectExternalLayerRefs } from './collectExternalLayerRefs';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACN,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "textmode.synth.js",
3
- "version": "1.0.0-beta.1",
3
+ "version": "1.0.0-beta.3",
4
4
  "description": "Synth engine for textmode.js",
5
5
  "type": "module",
6
6
  "types": "./dist/types/index.d.ts",
@@ -18,21 +18,24 @@
18
18
  "build": "vite build && tsc",
19
19
  "preview": "vite preview",
20
20
  "build:docs": "typedoc",
21
- "dev:docs": "typedoc --watch"
21
+ "dev:docs": "typedoc --watch",
22
+ "format": "prettier --write \"src/**/*.ts\"",
23
+ "format:check": "prettier --check \"src/**/*.ts\""
22
24
  },
23
25
  "devDependencies": {
24
26
  "@rollup/plugin-terser": "^0.4.4",
25
27
  "@types/node": "^24.5.2",
28
+ "prettier": "^3.7.4",
26
29
  "terser": "^5.44.0",
27
- "typescript": "~5.8.3",
28
- "vite": "^7.1.7",
29
- "vite-plugin-css-injected-by-js": "^3.5.2",
30
+ "textmode.js": "^0.9.0-beta.2",
30
31
  "typedoc": "^0.28.13",
31
32
  "typedoc-plugin-markdown": "^4.7.0",
32
- "typedoc-vitepress-theme": "^1.1.2"
33
+ "typedoc-vitepress-theme": "^1.1.2",
34
+ "typescript": "~5.8.3",
35
+ "vite": "^7.1.7"
33
36
  },
34
37
  "peerDependencies": {
35
- "textmode.js": "^0.9.0-beta.1"
38
+ "textmode.js": "^0.9.0-beta.2"
36
39
  },
37
40
  "repository": {
38
41
  "type": "git",
@@ -40,10 +43,14 @@
40
43
  },
41
44
  "keywords": [
42
45
  "textmode",
43
- "textmode.js"
46
+ "creative-coding",
47
+ "graphics",
48
+ "ascii-art",
49
+ "live-coding",
50
+ "synthesis"
44
51
  ],
45
52
  "author": "humanbydefinition",
46
- "license": "MIT",
53
+ "license": "AGPL-3.0",
47
54
  "bugs": {
48
55
  "url": "https://github.com/humanbydefinition/textmode.synth.js/issues"
49
56
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"SynthPlugin.d.ts","sourceRoot":"","sources":["../../src/SynthPlugin.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACX,cAAc,EAEd,MAAM,qBAAqB,CAAC;AA4F7B;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,WAAW,EAAE,cA2QzB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ArrayUtils.d.ts","sourceRoot":"","sources":["../../../src/lib/ArrayUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,gBAAgB;gBAChB,MAAM;oBACF,MAAM;qBACL,MAAM;uBACJ,MAAM;qBACR,MAAM;sBACL,MAAM;wBACJ,MAAM;qBACT,MAAM;sBACL,MAAM;wBACJ,MAAM;qBACT,MAAM;sBACL,MAAM;wBACJ,MAAM;aACjB,MAAM;CACf,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,gBAAgB,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;AAErF;;;;;;GAMG;AACH,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,MAAM,CAAC;IACpD,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9B,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,IAAI,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAEjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC;CAC/C;AAgBD;;;GAGG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAuCrC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,CAwB5E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAMxE"}
@@ -1,16 +0,0 @@
1
- /**
2
- * Character modifier transform definitions.
3
- *
4
- * These transforms modify character properties like flipping,
5
- * rotation, and color inversion.
6
- */
7
- import { type TransformDefinition } from '../TransformDefinition';
8
- export declare const charFlipX: TransformDefinition;
9
- export declare const charFlipY: TransformDefinition;
10
- export declare const charInvert: TransformDefinition;
11
- export declare const charRotate: TransformDefinition;
12
- /**
13
- * All character modifier transforms.
14
- */
15
- export declare const CHAR_MODIFY_TRANSFORMS: TransformDefinition[];
16
- //# sourceMappingURL=charModifiers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"charModifiers.d.ts","sourceRoot":"","sources":["../../../../src/transforms/categories/charModifiers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAmB,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAEnF,eAAO,MAAM,SAAS,qBAYpB,CAAC;AAEH,eAAO,MAAM,SAAS,qBAYpB,CAAC;AAEH,eAAO,MAAM,UAAU,qBAYrB,CAAC;AAEH,eAAO,MAAM,UAAU,qBAYrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,mBAAmB,EAKvD,CAAC"}