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.
- package/README.md +8 -0
- package/dist/catalog/composites/clouds/clouds.controls.d.ts.map +1 -1
- package/dist/catalog/composites/clouds/clouds.d.ts.map +1 -1
- package/dist/catalog/composites/corporate-blobs/corporate-blobs.controls.d.ts.map +1 -1
- package/dist/catalog/composites/corporate-blobs/corporate-blobs.d.ts.map +1 -1
- package/dist/catalog/composites/corporate-blobs/corporate-blobs.web.d.ts.map +1 -1
- package/dist/catalog/composites/fairy-cave/fairy-cave.controls.d.ts.map +1 -1
- package/dist/catalog/composites/fairy-cave/fairy-cave.d.ts.map +1 -1
- package/dist/catalog/composites/fairy-cave/fairy-cave.web.d.ts.map +1 -1
- package/dist/catalog/composites/fairy-grotto/fairy-grotto.controls.d.ts.map +1 -1
- package/dist/catalog/composites/fairy-grotto/fairy-grotto.d.ts.map +1 -1
- package/dist/catalog/composites/fairy-grotto/fairy-grotto.web.d.ts.map +1 -1
- package/dist/catalog/composites/fairy-hollow/fairy-hollow.controls.d.ts.map +1 -1
- package/dist/catalog/composites/fairy-hollow/fairy-hollow.d.ts.map +1 -1
- package/dist/catalog/composites/fairy-hollow/fairy-hollow.web.d.ts.map +1 -1
- package/dist/catalog/composites/nebula/nebula.controls.d.ts.map +1 -1
- package/dist/catalog/composites/nebula/nebula.d.ts.map +1 -1
- package/dist/catalog/composites/nebula/nebula.web.d.ts.map +1 -1
- package/dist/catalog/composites/observation-deck/observation-deck.controls.d.ts.map +1 -1
- package/dist/catalog/composites/observation-deck/observation-deck.d.ts.map +1 -1
- package/dist/catalog/composites/observation-deck/observation-deck.web.d.ts.map +1 -1
- package/dist/catalog/composites/simianlights/simianlights.controls.d.ts.map +1 -1
- package/dist/catalog/composites/simianlights/simianlights.d.ts.map +1 -1
- package/dist/catalog/composites/simianlights/simianlights.web.d.ts.map +1 -1
- package/dist/catalog/composites/underwater/underwater.controls.d.ts.map +1 -1
- package/dist/catalog/composites/underwater/underwater.d.ts.map +1 -1
- package/dist/catalog/composites/underwater/underwater.web.d.ts.map +1 -1
- package/dist/catalog/composites/wizard-tower/wizard-tower.controls.d.ts.map +1 -1
- package/dist/catalog/composites/wizard-tower/wizard-tower.d.ts.map +1 -1
- package/dist/catalog/composites/wizard-tower/wizard-tower.web.d.ts.map +1 -1
- package/dist/catalog/composites/wizard-tower-night/wizard-tower-night.controls.d.ts.map +1 -1
- package/dist/catalog/composites/wizard-tower-night/wizard-tower-night.d.ts.map +1 -1
- package/dist/catalog/composites/wizard-tower-night/wizard-tower-night.web.d.ts.map +1 -1
- package/dist/catalog/images/corporate/corporate-logo.d.ts.map +1 -1
- package/dist/catalog/images/corporate/corporate-logo.web.d.ts.map +1 -1
- package/dist/catalog/images/debug/debug-resolutions.d.ts.map +1 -1
- package/dist/catalog/images/debug/debug-resolutions.web.d.ts.map +1 -1
- package/dist/catalog/images/fairy-caves/grotto.d.ts.map +1 -1
- package/dist/catalog/images/fairy-caves/grotto.web.d.ts.map +1 -1
- package/dist/catalog/images/fairy-caves/hollow.d.ts.map +1 -1
- package/dist/catalog/images/fairy-caves/hollow.web.d.ts.map +1 -1
- package/dist/catalog/images/fairy-caves/treehouse-2.d.ts.map +1 -1
- package/dist/catalog/images/fairy-caves/treehouse-2.web.d.ts.map +1 -1
- package/dist/catalog/images/fairy-caves/treehouse-3.d.ts.map +1 -1
- package/dist/catalog/images/fairy-caves/treehouse-3.web.d.ts.map +1 -1
- package/dist/catalog/images/fairy-caves/treehouse.d.ts.map +1 -1
- package/dist/catalog/images/fairy-caves/treehouse.web.d.ts.map +1 -1
- package/dist/catalog/images/home/home-dark.d.ts.map +1 -1
- package/dist/catalog/images/home/home-dark.web.d.ts.map +1 -1
- package/dist/catalog/images/home/home-light.d.ts.map +1 -1
- package/dist/catalog/images/home/home-light.web.d.ts.map +1 -1
- package/dist/catalog/images/image-ids.d.ts.map +1 -1
- package/dist/catalog/images/image.types.d.ts.map +1 -1
- package/dist/catalog/images/index.d.ts.map +1 -1
- package/dist/catalog/images/nature/landscape-dark.d.ts.map +1 -1
- package/dist/catalog/images/nature/landscape-dark.web.d.ts.map +1 -1
- package/dist/catalog/images/nature/landscape-light.d.ts.map +1 -1
- package/dist/catalog/images/nature/landscape-light.web.d.ts.map +1 -1
- package/dist/catalog/images/office/office-dark.d.ts.map +1 -1
- package/dist/catalog/images/office/office-dark.web.d.ts.map +1 -1
- package/dist/catalog/images/office/office-light.d.ts.map +1 -1
- package/dist/catalog/images/office/office-light.web.d.ts.map +1 -1
- package/dist/catalog/images/sci-fi/sci-fi-light.d.ts.map +1 -1
- package/dist/catalog/images/sci-fi/sci-fi-light.web.d.ts.map +1 -1
- package/dist/catalog/images/simiancraft/simiancraft-dark-transparency.d.ts.map +1 -1
- package/dist/catalog/images/simiancraft/simiancraft-dark-transparency.web.d.ts.map +1 -1
- package/dist/catalog/images/simiancraft/simiancraft-dark.d.ts.map +1 -1
- package/dist/catalog/images/simiancraft/simiancraft-dark.web.d.ts.map +1 -1
- package/dist/catalog/images/simiancraft/simiancraft-light-transparency.d.ts.map +1 -1
- package/dist/catalog/images/simiancraft/simiancraft-light-transparency.web.d.ts.map +1 -1
- package/dist/catalog/images/simiancraft/simiancraft-light.d.ts.map +1 -1
- package/dist/catalog/images/simiancraft/simiancraft-light.web.d.ts.map +1 -1
- package/dist/catalog/images/spaceship/observation-deck.d.ts.map +1 -1
- package/dist/catalog/images/spaceship/observation-deck.web.d.ts.map +1 -1
- package/dist/catalog/images/underwater/oceanscape-dark.d.ts.map +1 -1
- package/dist/catalog/images/underwater/oceanscape-dark.web.d.ts.map +1 -1
- package/dist/catalog/images/wizard-tower/wizard-tower-1.d.ts.map +1 -1
- package/dist/catalog/images/wizard-tower/wizard-tower-1.web.d.ts.map +1 -1
- package/dist/catalog/images/wizard-tower/wizard-tower-2.d.ts.map +1 -1
- package/dist/catalog/images/wizard-tower/wizard-tower-2.web.d.ts.map +1 -1
- package/dist/catalog/images/wizard-tower/wizard-tower-night.d.ts.map +1 -1
- package/dist/catalog/images/wizard-tower/wizard-tower-night.web.d.ts.map +1 -1
- package/dist/catalog/shaders/_shared/types.d.ts.map +1 -1
- package/dist/catalog/shaders/anamorphic-lensflare/anamorphic-lensflare.d.ts.map +1 -1
- package/dist/catalog/shaders/anamorphic-lensflare/anamorphic-lensflare.form.d.ts.map +1 -1
- package/dist/catalog/shaders/blur/blur.d.ts.map +1 -1
- package/dist/catalog/shaders/blur/blur.form.d.ts.map +1 -1
- package/dist/catalog/shaders/clouds/clouds.d.ts.map +1 -1
- package/dist/catalog/shaders/clouds/clouds.form.d.ts.map +1 -1
- package/dist/catalog/shaders/corporate-blobs/corporate-blobs.d.ts.map +1 -1
- package/dist/catalog/shaders/corporate-blobs/corporate-blobs.form.d.ts.map +1 -1
- package/dist/catalog/shaders/fireflies/fireflies.d.ts.map +1 -1
- package/dist/catalog/shaders/fireflies/fireflies.form.d.ts.map +1 -1
- package/dist/catalog/shaders/godrays/godrays.d.ts.map +1 -1
- package/dist/catalog/shaders/godrays/godrays.form.d.ts.map +1 -1
- package/dist/catalog/shaders/index.d.ts.map +1 -1
- package/dist/catalog/shaders/light-beams-and-motes/light-beams-and-motes.d.ts.map +1 -1
- package/dist/catalog/shaders/light-beams-and-motes/light-beams-and-motes.form.d.ts.map +1 -1
- package/dist/catalog/shaders/nebula/nebula.d.ts.map +1 -1
- package/dist/catalog/shaders/nebula/nebula.form.d.ts.map +1 -1
- package/dist/catalog/shaders/plasma/plasma.d.ts.map +1 -1
- package/dist/catalog/shaders/plasma/plasma.form.d.ts.map +1 -1
- package/dist/catalog/shaders/simianlights/simianlights.d.ts.map +1 -1
- package/dist/catalog/shaders/simianlights/simianlights.form.d.ts.map +1 -1
- package/dist/src/components/form/control-form.d.ts.map +1 -1
- package/dist/src/components/form/make-controls.d.ts.map +1 -1
- package/dist/src/components/form/scope.d.ts.map +1 -1
- package/dist/src/components/form/use-field.d.ts.map +1 -1
- package/dist/src/components/preset-book-menu/index.d.ts.map +1 -1
- package/dist/src/components/preset-book-menu/layout.d.ts.map +1 -1
- package/dist/src/components/preset-book-menu/preset-book-menu.types.d.ts.map +1 -1
- package/dist/src/components/preset-book-menu/preset-grid.d.ts.map +1 -1
- package/dist/src/components/preset-book-menu/resolve-image-uri.d.ts.map +1 -1
- package/dist/src/components/preset-book-menu/resolve-image-uri.types.d.ts.map +1 -1
- package/dist/src/components/preset-book-menu/resolve-image-uri.web.d.ts.map +1 -1
- package/dist/src/components/preset-control-panel/composite-layer-control-panel.d.ts.map +1 -1
- package/dist/src/components/preset-control-panel/control-section.d.ts.map +1 -1
- package/dist/src/components/preset-control-panel/control.d.ts.map +1 -1
- package/dist/src/components/preset-control-panel/index.d.ts.map +1 -1
- package/dist/src/components/preset-control-panel/mask-control-panel.d.ts.map +1 -1
- package/dist/src/components/preset-control-panel/preset-control-panel.d.ts.map +1 -1
- package/dist/src/components/preset-control-panel/transform-control-panel.d.ts.map +1 -1
- package/dist/src/components/preset-tile/index.d.ts.map +1 -1
- package/dist/src/components/theme/provider.d.ts.map +1 -1
- package/dist/src/components/theme/slots.d.ts.map +1 -1
- package/dist/src/components/ui/button.d.ts.map +1 -1
- package/dist/src/components/ui/color-picker.d.ts.map +1 -1
- package/dist/src/components/ui/index.d.ts.map +1 -1
- package/dist/src/components/ui/label.d.ts.map +1 -1
- package/dist/src/components/ui/point.d.ts.map +1 -1
- package/dist/src/components/ui/polygon-field.d.ts.map +1 -1
- package/dist/src/components/ui/readout.d.ts.map +1 -1
- package/dist/src/components/ui/slider-value.d.ts.map +1 -1
- package/dist/src/components/ui/slider.d.ts.map +1 -1
- package/dist/src/components/ui/switch.d.ts.map +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.web.d.ts.map +1 -1
- package/dist/src/kaleidoscope/controls.d.ts.map +1 -1
- package/dist/src/kaleidoscope/effect.d.ts.map +1 -1
- package/dist/src/kaleidoscope/effect.types.d.ts.map +1 -1
- package/dist/src/kaleidoscope/shader-to-spec.d.ts.map +1 -1
- package/dist/src/kaleidoscope/types.d.ts.map +1 -1
- package/dist/src/kaleidoscope.preset-book.types.d.ts.map +1 -1
- package/dist/src/lib/primitives.types.d.ts.map +1 -1
- package/dist/src/lib/test-id.d.ts.map +1 -1
- package/dist/src/livekit.d.ts +2 -0
- package/dist/src/livekit.d.ts.map +1 -1
- package/dist/src/livekit.js +7 -1
- package/dist/src/livekit.js.map +1 -1
- package/dist/src/nativewind.d.ts.map +1 -1
- package/dist/web-driver/effects/composite.d.ts.map +1 -1
- package/dist/web-driver/effects/layer-shaders.d.ts.map +1 -1
- package/dist/web-driver/effects/transform.d.ts.map +1 -1
- package/dist/web-driver/index.d.ts.map +1 -1
- package/dist/web-driver/insertable-streams.d.ts.map +1 -1
- package/dist/web-driver/segmenter.d.ts.map +1 -1
- package/dist/web-driver/shaders.d.ts.map +1 -1
- package/dist/web-driver/shaders.generated.d.ts.map +1 -1
- package/dist/web-driver/tuning.d.ts +14 -0
- package/dist/web-driver/tuning.d.ts.map +1 -1
- package/dist/web-driver/tuning.js +24 -6
- package/dist/web-driver/tuning.js.map +1 -1
- package/llms.txt +576 -0
- package/package.json +8 -7
- package/plugin/build/lib/preset-book.js +48 -15
- 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.
|
|
22
|
-
//
|
|
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*[
|
|
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
|
-
|
|
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)
|
|
90
|
-
|
|
91
|
-
|
|
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
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
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
|
-
|
|
105
|
-
|
|
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`
|