react-native-webrtc-kaleidoscope 2.1.1 → 2.2.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.
Files changed (166) hide show
  1. package/README.md +8 -0
  2. package/dist/catalog/composites/clouds/clouds.controls.d.ts.map +1 -1
  3. package/dist/catalog/composites/clouds/clouds.d.ts.map +1 -1
  4. package/dist/catalog/composites/corporate-blobs/corporate-blobs.controls.d.ts.map +1 -1
  5. package/dist/catalog/composites/corporate-blobs/corporate-blobs.d.ts.map +1 -1
  6. package/dist/catalog/composites/corporate-blobs/corporate-blobs.web.d.ts.map +1 -1
  7. package/dist/catalog/composites/fairy-cave/fairy-cave.controls.d.ts.map +1 -1
  8. package/dist/catalog/composites/fairy-cave/fairy-cave.d.ts.map +1 -1
  9. package/dist/catalog/composites/fairy-cave/fairy-cave.web.d.ts.map +1 -1
  10. package/dist/catalog/composites/fairy-grotto/fairy-grotto.controls.d.ts.map +1 -1
  11. package/dist/catalog/composites/fairy-grotto/fairy-grotto.d.ts.map +1 -1
  12. package/dist/catalog/composites/fairy-grotto/fairy-grotto.web.d.ts.map +1 -1
  13. package/dist/catalog/composites/fairy-hollow/fairy-hollow.controls.d.ts.map +1 -1
  14. package/dist/catalog/composites/fairy-hollow/fairy-hollow.d.ts.map +1 -1
  15. package/dist/catalog/composites/fairy-hollow/fairy-hollow.web.d.ts.map +1 -1
  16. package/dist/catalog/composites/nebula/nebula.controls.d.ts.map +1 -1
  17. package/dist/catalog/composites/nebula/nebula.d.ts.map +1 -1
  18. package/dist/catalog/composites/nebula/nebula.web.d.ts.map +1 -1
  19. package/dist/catalog/composites/observation-deck/observation-deck.controls.d.ts.map +1 -1
  20. package/dist/catalog/composites/observation-deck/observation-deck.d.ts.map +1 -1
  21. package/dist/catalog/composites/observation-deck/observation-deck.web.d.ts.map +1 -1
  22. package/dist/catalog/composites/simianlights/simianlights.controls.d.ts.map +1 -1
  23. package/dist/catalog/composites/simianlights/simianlights.d.ts.map +1 -1
  24. package/dist/catalog/composites/simianlights/simianlights.web.d.ts.map +1 -1
  25. package/dist/catalog/composites/underwater/underwater.controls.d.ts.map +1 -1
  26. package/dist/catalog/composites/underwater/underwater.d.ts.map +1 -1
  27. package/dist/catalog/composites/underwater/underwater.web.d.ts.map +1 -1
  28. package/dist/catalog/composites/wizard-tower/wizard-tower.controls.d.ts.map +1 -1
  29. package/dist/catalog/composites/wizard-tower/wizard-tower.d.ts.map +1 -1
  30. package/dist/catalog/composites/wizard-tower/wizard-tower.web.d.ts.map +1 -1
  31. package/dist/catalog/composites/wizard-tower-night/wizard-tower-night.controls.d.ts.map +1 -1
  32. package/dist/catalog/composites/wizard-tower-night/wizard-tower-night.d.ts.map +1 -1
  33. package/dist/catalog/composites/wizard-tower-night/wizard-tower-night.web.d.ts.map +1 -1
  34. package/dist/catalog/images/corporate/corporate-logo.d.ts.map +1 -1
  35. package/dist/catalog/images/corporate/corporate-logo.web.d.ts.map +1 -1
  36. package/dist/catalog/images/debug/debug-resolutions.d.ts.map +1 -1
  37. package/dist/catalog/images/debug/debug-resolutions.web.d.ts.map +1 -1
  38. package/dist/catalog/images/fairy-caves/grotto.d.ts.map +1 -1
  39. package/dist/catalog/images/fairy-caves/grotto.web.d.ts.map +1 -1
  40. package/dist/catalog/images/fairy-caves/hollow.d.ts.map +1 -1
  41. package/dist/catalog/images/fairy-caves/hollow.web.d.ts.map +1 -1
  42. package/dist/catalog/images/fairy-caves/treehouse-2.d.ts.map +1 -1
  43. package/dist/catalog/images/fairy-caves/treehouse-2.web.d.ts.map +1 -1
  44. package/dist/catalog/images/fairy-caves/treehouse-3.d.ts.map +1 -1
  45. package/dist/catalog/images/fairy-caves/treehouse-3.web.d.ts.map +1 -1
  46. package/dist/catalog/images/fairy-caves/treehouse.d.ts.map +1 -1
  47. package/dist/catalog/images/fairy-caves/treehouse.web.d.ts.map +1 -1
  48. package/dist/catalog/images/home/home-dark.d.ts.map +1 -1
  49. package/dist/catalog/images/home/home-dark.web.d.ts.map +1 -1
  50. package/dist/catalog/images/home/home-light.d.ts.map +1 -1
  51. package/dist/catalog/images/home/home-light.web.d.ts.map +1 -1
  52. package/dist/catalog/images/image-ids.d.ts.map +1 -1
  53. package/dist/catalog/images/image.types.d.ts.map +1 -1
  54. package/dist/catalog/images/index.d.ts.map +1 -1
  55. package/dist/catalog/images/nature/landscape-dark.d.ts.map +1 -1
  56. package/dist/catalog/images/nature/landscape-dark.web.d.ts.map +1 -1
  57. package/dist/catalog/images/nature/landscape-light.d.ts.map +1 -1
  58. package/dist/catalog/images/nature/landscape-light.web.d.ts.map +1 -1
  59. package/dist/catalog/images/office/office-dark.d.ts.map +1 -1
  60. package/dist/catalog/images/office/office-dark.web.d.ts.map +1 -1
  61. package/dist/catalog/images/office/office-light.d.ts.map +1 -1
  62. package/dist/catalog/images/office/office-light.web.d.ts.map +1 -1
  63. package/dist/catalog/images/sci-fi/sci-fi-light.d.ts.map +1 -1
  64. package/dist/catalog/images/sci-fi/sci-fi-light.web.d.ts.map +1 -1
  65. package/dist/catalog/images/simiancraft/simiancraft-dark-transparency.d.ts.map +1 -1
  66. package/dist/catalog/images/simiancraft/simiancraft-dark-transparency.web.d.ts.map +1 -1
  67. package/dist/catalog/images/simiancraft/simiancraft-dark.d.ts.map +1 -1
  68. package/dist/catalog/images/simiancraft/simiancraft-dark.web.d.ts.map +1 -1
  69. package/dist/catalog/images/simiancraft/simiancraft-light-transparency.d.ts.map +1 -1
  70. package/dist/catalog/images/simiancraft/simiancraft-light-transparency.web.d.ts.map +1 -1
  71. package/dist/catalog/images/simiancraft/simiancraft-light.d.ts.map +1 -1
  72. package/dist/catalog/images/simiancraft/simiancraft-light.web.d.ts.map +1 -1
  73. package/dist/catalog/images/spaceship/observation-deck.d.ts.map +1 -1
  74. package/dist/catalog/images/spaceship/observation-deck.web.d.ts.map +1 -1
  75. package/dist/catalog/images/underwater/oceanscape-dark.d.ts.map +1 -1
  76. package/dist/catalog/images/underwater/oceanscape-dark.web.d.ts.map +1 -1
  77. package/dist/catalog/images/wizard-tower/wizard-tower-1.d.ts.map +1 -1
  78. package/dist/catalog/images/wizard-tower/wizard-tower-1.web.d.ts.map +1 -1
  79. package/dist/catalog/images/wizard-tower/wizard-tower-2.d.ts.map +1 -1
  80. package/dist/catalog/images/wizard-tower/wizard-tower-2.web.d.ts.map +1 -1
  81. package/dist/catalog/images/wizard-tower/wizard-tower-night.d.ts.map +1 -1
  82. package/dist/catalog/images/wizard-tower/wizard-tower-night.web.d.ts.map +1 -1
  83. package/dist/catalog/shaders/_shared/types.d.ts.map +1 -1
  84. package/dist/catalog/shaders/anamorphic-lensflare/anamorphic-lensflare.d.ts.map +1 -1
  85. package/dist/catalog/shaders/anamorphic-lensflare/anamorphic-lensflare.form.d.ts.map +1 -1
  86. package/dist/catalog/shaders/blur/blur.d.ts.map +1 -1
  87. package/dist/catalog/shaders/blur/blur.form.d.ts.map +1 -1
  88. package/dist/catalog/shaders/clouds/clouds.d.ts.map +1 -1
  89. package/dist/catalog/shaders/clouds/clouds.form.d.ts.map +1 -1
  90. package/dist/catalog/shaders/corporate-blobs/corporate-blobs.d.ts.map +1 -1
  91. package/dist/catalog/shaders/corporate-blobs/corporate-blobs.form.d.ts.map +1 -1
  92. package/dist/catalog/shaders/fireflies/fireflies.d.ts.map +1 -1
  93. package/dist/catalog/shaders/fireflies/fireflies.form.d.ts.map +1 -1
  94. package/dist/catalog/shaders/godrays/godrays.d.ts.map +1 -1
  95. package/dist/catalog/shaders/godrays/godrays.form.d.ts.map +1 -1
  96. package/dist/catalog/shaders/index.d.ts.map +1 -1
  97. package/dist/catalog/shaders/light-beams-and-motes/light-beams-and-motes.d.ts.map +1 -1
  98. package/dist/catalog/shaders/light-beams-and-motes/light-beams-and-motes.form.d.ts.map +1 -1
  99. package/dist/catalog/shaders/nebula/nebula.d.ts.map +1 -1
  100. package/dist/catalog/shaders/nebula/nebula.form.d.ts.map +1 -1
  101. package/dist/catalog/shaders/plasma/plasma.d.ts.map +1 -1
  102. package/dist/catalog/shaders/plasma/plasma.form.d.ts.map +1 -1
  103. package/dist/catalog/shaders/simianlights/simianlights.d.ts.map +1 -1
  104. package/dist/catalog/shaders/simianlights/simianlights.form.d.ts.map +1 -1
  105. package/dist/src/components/form/control-form.d.ts.map +1 -1
  106. package/dist/src/components/form/make-controls.d.ts.map +1 -1
  107. package/dist/src/components/form/scope.d.ts.map +1 -1
  108. package/dist/src/components/form/use-field.d.ts.map +1 -1
  109. package/dist/src/components/preset-book-menu/index.d.ts.map +1 -1
  110. package/dist/src/components/preset-book-menu/layout.d.ts.map +1 -1
  111. package/dist/src/components/preset-book-menu/preset-book-menu.types.d.ts.map +1 -1
  112. package/dist/src/components/preset-book-menu/preset-grid.d.ts.map +1 -1
  113. package/dist/src/components/preset-book-menu/resolve-image-uri.d.ts.map +1 -1
  114. package/dist/src/components/preset-book-menu/resolve-image-uri.types.d.ts.map +1 -1
  115. package/dist/src/components/preset-book-menu/resolve-image-uri.web.d.ts.map +1 -1
  116. package/dist/src/components/preset-control-panel/composite-layer-control-panel.d.ts.map +1 -1
  117. package/dist/src/components/preset-control-panel/control-section.d.ts.map +1 -1
  118. package/dist/src/components/preset-control-panel/control.d.ts.map +1 -1
  119. package/dist/src/components/preset-control-panel/index.d.ts.map +1 -1
  120. package/dist/src/components/preset-control-panel/mask-control-panel.d.ts.map +1 -1
  121. package/dist/src/components/preset-control-panel/preset-control-panel.d.ts.map +1 -1
  122. package/dist/src/components/preset-control-panel/transform-control-panel.d.ts.map +1 -1
  123. package/dist/src/components/preset-tile/index.d.ts.map +1 -1
  124. package/dist/src/components/theme/provider.d.ts.map +1 -1
  125. package/dist/src/components/theme/slots.d.ts.map +1 -1
  126. package/dist/src/components/ui/button.d.ts.map +1 -1
  127. package/dist/src/components/ui/color-picker.d.ts.map +1 -1
  128. package/dist/src/components/ui/index.d.ts.map +1 -1
  129. package/dist/src/components/ui/label.d.ts.map +1 -1
  130. package/dist/src/components/ui/point.d.ts.map +1 -1
  131. package/dist/src/components/ui/polygon-field.d.ts.map +1 -1
  132. package/dist/src/components/ui/readout.d.ts.map +1 -1
  133. package/dist/src/components/ui/slider-value.d.ts.map +1 -1
  134. package/dist/src/components/ui/slider.d.ts.map +1 -1
  135. package/dist/src/components/ui/switch.d.ts.map +1 -1
  136. package/dist/src/index.d.ts.map +1 -1
  137. package/dist/src/index.web.d.ts.map +1 -1
  138. package/dist/src/kaleidoscope/controls.d.ts.map +1 -1
  139. package/dist/src/kaleidoscope/effect.d.ts.map +1 -1
  140. package/dist/src/kaleidoscope/effect.types.d.ts.map +1 -1
  141. package/dist/src/kaleidoscope/shader-to-spec.d.ts.map +1 -1
  142. package/dist/src/kaleidoscope/types.d.ts.map +1 -1
  143. package/dist/src/kaleidoscope.preset-book.types.d.ts.map +1 -1
  144. package/dist/src/lib/primitives.types.d.ts.map +1 -1
  145. package/dist/src/lib/test-id.d.ts.map +1 -1
  146. package/dist/src/livekit.d.ts +2 -0
  147. package/dist/src/livekit.d.ts.map +1 -1
  148. package/dist/src/livekit.js +7 -1
  149. package/dist/src/livekit.js.map +1 -1
  150. package/dist/src/nativewind.d.ts.map +1 -1
  151. package/dist/web-driver/effects/composite.d.ts.map +1 -1
  152. package/dist/web-driver/effects/layer-shaders.d.ts.map +1 -1
  153. package/dist/web-driver/effects/transform.d.ts.map +1 -1
  154. package/dist/web-driver/index.d.ts.map +1 -1
  155. package/dist/web-driver/insertable-streams.d.ts.map +1 -1
  156. package/dist/web-driver/segmenter.d.ts.map +1 -1
  157. package/dist/web-driver/shaders.d.ts.map +1 -1
  158. package/dist/web-driver/shaders.generated.d.ts.map +1 -1
  159. package/dist/web-driver/tuning.d.ts +14 -0
  160. package/dist/web-driver/tuning.d.ts.map +1 -1
  161. package/dist/web-driver/tuning.js +24 -6
  162. package/dist/web-driver/tuning.js.map +1 -1
  163. package/llms.txt +576 -0
  164. package/package.json +8 -7
  165. package/plugin/build/lib/preset-book.js +48 -15
  166. package/src/livekit.ts +7 -0
@@ -18,8 +18,11 @@
18
18
  // each `image` layer is `{ id, shader: 'image', source: <ref> }`, where <ref> is
19
19
  // a `require('./x.webp')` literal, a single named import from an
20
20
  // `.../images/<category>/<leaf>` specifier, or a `const X = ...require('./x.webp')...`
21
- // binding. Anything that can't be parsed or resolved warns (never throws),
22
- // matching the plugin's non-fatal contract.
21
+ // binding. A binding's initializer may span lines (a consumer's formatter wraps
22
+ // the idiomatic `Asset.fromModule(require(...)).uri` at narrow print widths), so
23
+ // the parse reads statements, not lines. Anything that can't be parsed or
24
+ // resolved warns (never throws), matching the plugin's non-fatal contract; an
25
+ // `image` layer dropped silently at prebuild is a bug, not a policy.
23
26
  var __importDefault =
24
27
  (this && this.__importDefault) ||
25
28
  function (mod) {
@@ -30,6 +33,7 @@ exports.PRESET_BOOK_FILENAME = void 0;
30
33
  exports.collectReferencedAssets = collectReferencedAssets;
31
34
  const node_fs_1 = __importDefault(require('node:fs'));
32
35
  const node_path_1 = __importDefault(require('node:path'));
36
+ const constants_1 = require('./constants');
33
37
  const file_manipulation_1 = require('./file-manipulation');
34
38
  /** The file a consumer declares at their project root. */
35
39
  exports.PRESET_BOOK_FILENAME = 'kaleidoscope.preset-book.ts';
@@ -48,8 +52,12 @@ function parseImports(source) {
48
52
  const specifier = m[3];
49
53
  if (local && specifier) imports[local] = specifier;
50
54
  }
55
+ // The initializer scan crosses newlines (formatters wrap the binding) but
56
+ // stops at `;` and refuses to run into a following declaration, so a
57
+ // no-semicolon style cannot misattribute a later require() to an earlier
58
+ // binding.
51
59
  const requireBindingRe =
52
- /(?:const|let|var)\s+([A-Za-z0-9_$]+)\s*=\s*[^;\n]*\brequire\(\s*['"]([^'"]+)['"]\s*\)/g;
60
+ /(?:const|let|var)\s+([A-Za-z0-9_$]+)\s*=\s*(?:(?!\b(?:const|let|var)\b)[^;])*?\brequire\(\s*['"]([^'"]+)['"]\s*\)/g;
53
61
  for (const m of source.matchAll(requireBindingRe)) {
54
62
  const local = m[1];
55
63
  const specifier = m[2];
@@ -81,14 +89,27 @@ function parseImageRefs(source) {
81
89
  for (const m of source.matchAll(layerRe)) {
82
90
  const body = m[1];
83
91
  if (!body) continue;
92
+ const layerId = body.match(/\bid\s*:\s*['"]([\w-]+)['"]/)?.[1];
84
93
  const sourceM = body.match(/source\s*:\s*(require\(\s*['"][^'"]+['"]\s*\)|[A-Za-z0-9_$]+)/);
85
94
  const expr = sourceM?.[1];
86
- if (!expr) continue;
95
+ // The warn-never-throw contract: a layer the parse cannot follow is skipped
96
+ // LOUDLY, naming the layer, so the missing plate surfaces at prebuild
97
+ // instead of on-device.
98
+ if (!expr) {
99
+ console.warn(
100
+ `${constants_1.LOG_TAG} Could not parse the 'source' of image layer '${layerId ?? '<no id>'}'; skipping its asset. An image layer's source must be a require('...') literal or an identifier bound by a single named import or a require() binding.`,
101
+ );
102
+ continue;
103
+ }
87
104
  const requireLiteral = expr.match(/require\(\s*['"]([^'"]+)['"]\s*\)/);
88
105
  const specifier = requireLiteral ? requireLiteral[1] : (imports[expr] ?? null);
89
- if (!specifier) continue;
90
- const idM = body.match(/\bid\s*:\s*['"]([\w-]+)['"]/);
91
- const id = idM?.[1] ?? imageIdFromSpecifier(specifier);
106
+ if (!specifier) {
107
+ console.warn(
108
+ `${constants_1.LOG_TAG} Could not resolve '${expr}' (the 'source' of image layer '${layerId ?? '<no id>'}') to an import or require() binding; skipping its asset.`,
109
+ );
110
+ continue;
111
+ }
112
+ const id = layerId ?? imageIdFromSpecifier(specifier);
92
113
  if (seen.has(id)) continue;
93
114
  seen.add(id);
94
115
  refs.push({ id, specifier });
@@ -96,13 +117,21 @@ function parseImageRefs(source) {
96
117
  return refs;
97
118
  }
98
119
  /**
99
- * Resolve an imported-composite specifier (`<pkg>/composites/<name>`) to its
100
- * source `.ts` on disk. Returns null for a non-composite specifier or an
101
- * unresolvable package.
120
+ * The composite a specifier references: `<pkg>/composites/<name>` or any of its
121
+ * per-composite subpaths (today `/controls`). A consumer importing ONLY a
122
+ * composite's controls is still using that composite, so both forms count.
123
+ */
124
+ function compositeNameFromSpecifier(specifier) {
125
+ return specifier.match(/(?:^|\/)composites\/([\w-]+)(?:\/controls)?$/)?.[1] ?? null;
126
+ }
127
+ /**
128
+ * Resolve an imported-composite specifier (`<pkg>/composites/<name>`, or its
129
+ * `/controls` subpath) to the composite's source `.ts` on disk. Returns null
130
+ * for a non-composite specifier or an unresolvable package.
102
131
  */
103
132
  function resolveCompositeSource(specifier, projectRoot) {
104
- if (!/(^|\/)composites\/[\w-]+$/.test(specifier)) return null;
105
- const name = specifier.substring(specifier.lastIndexOf('/') + 1);
133
+ const name = compositeNameFromSpecifier(specifier);
134
+ if (!name) return null;
106
135
  try {
107
136
  const pkgJson = require.resolve('react-native-webrtc-kaleidoscope/package.json', {
108
137
  paths: [projectRoot],
@@ -143,9 +172,13 @@ function resolveAssetPath(specifier, baseDir, projectRoot) {
143
172
  // collectors so neither drifts from the other.
144
173
  function walkBookSources(bookSource, projectRoot) {
145
174
  const sources = [{ source: bookSource, baseDir: projectRoot }];
175
+ // A composite and its `/controls` subpath resolve to the SAME source file;
176
+ // parse it once.
177
+ const seenPaths = new Set();
146
178
  for (const specifier of Object.values(parseImports(bookSource))) {
147
179
  const compositePath = resolveCompositeSource(specifier, projectRoot);
148
- if (!compositePath) continue;
180
+ if (!compositePath || seenPaths.has(compositePath)) continue;
181
+ seenPaths.add(compositePath);
149
182
  const compositeSource = (0, file_manipulation_1.readTextOrNull)(compositePath);
150
183
  // Non-fatal: a composite we cannot read contributes nothing.
151
184
  if (compositeSource !== null) {
@@ -182,10 +215,10 @@ function collectCompositeThumbRefs(bookSource, projectRoot) {
182
215
  const refs = [];
183
216
  const seen = new Set();
184
217
  for (const specifier of Object.values(parseImports(bookSource))) {
218
+ const name = compositeNameFromSpecifier(specifier);
219
+ if (!name || seen.has(name)) continue;
185
220
  const compositeTs = resolveCompositeSource(specifier, projectRoot);
186
221
  if (!compositeTs) continue;
187
- const name = specifier.substring(specifier.lastIndexOf('/') + 1);
188
- if (seen.has(name)) continue;
189
222
  const thumbPath = node_path_1.default.join(
190
223
  node_path_1.default.dirname(compositeTs),
191
224
  `${name}.thumb.webp`,
package/src/livekit.ts CHANGED
@@ -26,6 +26,13 @@ import type { ProcessorOptions, Track, TrackProcessor } from 'livekit-client';
26
26
  import { applyVideoEffectsDisposable } from './index.web';
27
27
  import type { EffectInput } from './kaleidoscope/effect.types';
28
28
 
29
+ // The first-class mask surface for the processor path (the twin of the
30
+ // binding's `mask` verb; see the implementation's doc in web-driver/tuning.ts).
31
+ // LiveKit owns the RTCRtpSender, so consumers here have no binding to call
32
+ // `mask` on; this export is how they drive the page-shared mask edge.
33
+ export { setMaskTuning } from '../web-driver/tuning';
34
+ export type { MaskInput } from './kaleidoscope/types';
35
+
29
36
  /**
30
37
  * A LiveKit `TrackProcessor` that applies Kaleidoscope video effects to a local
31
38
  * camera track. Construct it with the same effect inputs `applyVideoEffects`