ugly-app 0.1.551 → 0.1.553

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.
@@ -1,2 +1,2 @@
1
- export declare const CLI_VERSION = "0.1.551";
1
+ export declare const CLI_VERSION = "0.1.553";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.551";
2
+ export const CLI_VERSION = "0.1.553";
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"do-collection.d.ts","sourceRoot":"","sources":["../../../../src/server/adapter/workers/do-collection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,SAAS,IAAI,WAAW,EACzB,MAAM,2BAA2B,CAAC;AAuCnC,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAqB;gBAEtB,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO;IAa9C,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IA2BhD;;;;OAIG;IACG,gBAAgB,CACpB,EAAE,EAAE,WAAW,EACf,MAAM,EAAE,WAAW,GAAG,MAAM,GAC3B,OAAO,CAAC,IAAI,CAAC;IA0BhB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAKtC,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAOtC,OAAO,CAAC,SAAS;IAqBjB,OAAO,CAAC,OAAO;CAqBhB"}
1
+ {"version":3,"file":"do-collection.d.ts","sourceRoot":"","sources":["../../../../src/server/adapter/workers/do-collection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,SAAS,IAAI,WAAW,EACzB,MAAM,2BAA2B,CAAC;AAuCnC,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAqB;gBAEtB,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO;IAa9C,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IA2BhD;;;;OAIG;IACG,gBAAgB,CACpB,EAAE,EAAE,WAAW,EACf,MAAM,EAAE,WAAW,GAAG,MAAM,GAC3B,OAAO,CAAC,IAAI,CAAC;IA0BhB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAKtC,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAOtC,OAAO,CAAC,SAAS;IAqBjB,OAAO,CAAC,OAAO;CAgChB"}
@@ -114,19 +114,41 @@ export class CollectionDO {
114
114
  for (const f of filters) {
115
115
  if (f.kind === 'all')
116
116
  return true;
117
- if (f.kind === 'doc' && parsed.kind === 'db' && parsed.docId === f.id) {
117
+ // The publish side encodes the doc id / key value into the topic via
118
+ // escapeNatsToken ('+' → '_PLUS_', '.' → '_DOT_', etc.), so `parsed`
119
+ // carries the ESCAPED value. The subscription filter carries the RAW
120
+ // value the client passed to trackDocs/trackDoc. Forward-escape the
121
+ // filter value before comparing, or live updates silently never fire for
122
+ // any id/value containing '.', '+', '*', '>' — e.g. DM conversationIds
123
+ // like "<a>+<b>", which broke real-time delivery on every DM.
124
+ if (f.kind === 'doc' &&
125
+ parsed.kind === 'db' &&
126
+ parsed.docId === escapeTopicToken(f.id)) {
118
127
  return true;
119
128
  }
120
129
  if (f.kind === 'key' &&
121
130
  parsed.kind === 'dbkey' &&
122
131
  parsed.keyChannel?.key === f.field &&
123
- parsed.keyChannel?.value === f.value) {
132
+ parsed.keyChannel?.value === escapeTopicToken(f.value)) {
124
133
  return true;
125
134
  }
126
135
  }
127
136
  return false;
128
137
  }
129
138
  }
139
+ /**
140
+ * Mirror of `escapeNatsToken` (server/NatsStore.ts). Duplicated here on purpose:
141
+ * importing NatsStore.ts into the Workers bundle pulls in the Node `nats`
142
+ * client, which is not Workers-compatible and breaks `build:workers`. Keep this
143
+ * in sync with the canonical version.
144
+ */
145
+ function escapeTopicToken(token) {
146
+ return token
147
+ .replace(/\./g, '_DOT_')
148
+ .replace(/\+/g, '_PLUS_')
149
+ .replace(/\*/g, '_STAR_')
150
+ .replace(/>/g, '_GT_');
151
+ }
130
152
  function filterEquals(a, b) {
131
153
  if (a.kind !== b.kind)
132
154
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"do-collection.js","sourceRoot":"","sources":["../../../../src/server/adapter/workers/do-collection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"do-collection.js","sourceRoot":"","sources":["../../../../src/server/adapter/workers/do-collection.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TalkingAvatar.d.ts","sourceRoot":"","sources":["../../../src/three/client/TalkingAvatar.tsx"],"names":[],"mappings":"AAWA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAIjD,MAAM,WAAW,kBAAkB;IACjC,mEAAmE;IACnE,GAAG,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC/B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AA2BD,wBAAgB,aAAa,CAAC,EAC5B,GAAG,EACH,QAAQ,EACR,QAAgB,EAChB,UAAU,EACV,SAAS,EACT,KAAK,EACL,OAAgB,EAChB,OAAO,GACR,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAkKzC"}
1
+ {"version":3,"file":"TalkingAvatar.d.ts","sourceRoot":"","sources":["../../../src/three/client/TalkingAvatar.tsx"],"names":[],"mappings":"AAWA,OAAO,KAA4B,MAAM,OAAO,CAAC;AASjD,MAAM,WAAW,kBAAkB;IACjC,mEAAmE;IACnE,GAAG,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC/B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AA2BD,wBAAgB,aAAa,CAAC,EAC5B,GAAG,EACH,QAAQ,EACR,QAAgB,EAChB,UAAU,EACV,SAAS,EACT,KAAK,EACL,OAAgB,EAChB,OAAO,GACR,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAuKzC"}
@@ -13,6 +13,9 @@ import { jsx as _jsx } from "react/jsx-runtime";
13
13
  import { useEffect, useRef } from 'react';
14
14
  import * as THREE from 'three';
15
15
  import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
16
+ import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader.js';
17
+ // Draco decoder (Google CDN) — many avatar GLBs use KHR_draco_mesh_compression.
18
+ const DRACO_DECODER_PATH = 'https://www.gstatic.com/draco/versioned/decoders/1.5.7/';
16
19
  const MOUTH_OPEN = ['jawOpen'];
17
20
  const MOUTH_SHAPE = ['mouthFunnel', 'mouthPucker'];
18
21
  const BLINK = ['eyeBlinkLeft', 'eyeBlinkRight'];
@@ -85,7 +88,11 @@ export function TalkingAvatar({ src, analyser, speaking = false, background, cla
85
88
  }
86
89
  const ro = new ResizeObserver(resize);
87
90
  ro.observe(mount);
88
- new GLTFLoader().load(src, (gltf) => {
91
+ const draco = new DRACOLoader();
92
+ draco.setDecoderPath(DRACO_DECODER_PATH);
93
+ const loader = new GLTFLoader();
94
+ loader.setDRACOLoader(draco);
95
+ loader.load(src, (gltf) => {
89
96
  if (disposed)
90
97
  return;
91
98
  model = gltf.scene;
@@ -168,6 +175,7 @@ export function TalkingAvatar({ src, analyser, speaking = false, background, cla
168
175
  disposed = true;
169
176
  cancelAnimationFrame(raf);
170
177
  ro.disconnect();
178
+ draco.dispose();
171
179
  renderer.dispose();
172
180
  if (model)
173
181
  scene.remove(model);
@@ -1 +1 @@
1
- {"version":3,"file":"TalkingAvatar.js","sourceRoot":"","sources":["../../../src/three/client/TalkingAvatar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TalkingAvatar.js","sourceRoot":"","sources":["../../../src/three/client/TalkingAvatar.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugly-app",
3
- "version": "0.1.551",
3
+ "version": "0.1.553",
4
4
  "type": "module",
5
5
  "main": "./dist/server/index.js",
6
6
  "exports": {
@@ -1,2 +1,2 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.551";
2
+ export const CLI_VERSION = "0.1.553";
@@ -177,14 +177,25 @@ export class CollectionDO {
177
177
  const { parsed } = envelope;
178
178
  for (const f of filters) {
179
179
  if (f.kind === 'all') return true;
180
- if (f.kind === 'doc' && parsed.kind === 'db' && parsed.docId === f.id) {
180
+ // The publish side encodes the doc id / key value into the topic via
181
+ // escapeNatsToken ('+' → '_PLUS_', '.' → '_DOT_', etc.), so `parsed`
182
+ // carries the ESCAPED value. The subscription filter carries the RAW
183
+ // value the client passed to trackDocs/trackDoc. Forward-escape the
184
+ // filter value before comparing, or live updates silently never fire for
185
+ // any id/value containing '.', '+', '*', '>' — e.g. DM conversationIds
186
+ // like "<a>+<b>", which broke real-time delivery on every DM.
187
+ if (
188
+ f.kind === 'doc' &&
189
+ parsed.kind === 'db' &&
190
+ parsed.docId === escapeTopicToken(f.id)
191
+ ) {
181
192
  return true;
182
193
  }
183
194
  if (
184
195
  f.kind === 'key' &&
185
196
  parsed.kind === 'dbkey' &&
186
197
  parsed.keyChannel?.key === f.field &&
187
- parsed.keyChannel?.value === f.value
198
+ parsed.keyChannel?.value === escapeTopicToken(f.value)
188
199
  ) {
189
200
  return true;
190
201
  }
@@ -193,6 +204,20 @@ export class CollectionDO {
193
204
  }
194
205
  }
195
206
 
207
+ /**
208
+ * Mirror of `escapeNatsToken` (server/NatsStore.ts). Duplicated here on purpose:
209
+ * importing NatsStore.ts into the Workers bundle pulls in the Node `nats`
210
+ * client, which is not Workers-compatible and breaks `build:workers`. Keep this
211
+ * in sync with the canonical version.
212
+ */
213
+ function escapeTopicToken(token: string): string {
214
+ return token
215
+ .replace(/\./g, '_DOT_')
216
+ .replace(/\+/g, '_PLUS_')
217
+ .replace(/\*/g, '_STAR_')
218
+ .replace(/>/g, '_GT_');
219
+ }
220
+
196
221
  function filterEquals(a: SubscriptionFilter, b: SubscriptionFilter): boolean {
197
222
  if (a.kind !== b.kind) return false;
198
223
  if (a.kind === 'all') return true;
@@ -12,6 +12,11 @@
12
12
  import React, { useEffect, useRef } from 'react';
13
13
  import * as THREE from 'three';
14
14
  import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
15
+ import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader.js';
16
+
17
+ // Draco decoder (Google CDN) — many avatar GLBs use KHR_draco_mesh_compression.
18
+ const DRACO_DECODER_PATH =
19
+ 'https://www.gstatic.com/draco/versioned/decoders/1.5.7/';
15
20
 
16
21
  export interface TalkingAvatarProps {
17
22
  /** GLB model URL (must contain ARKit blendshape morph targets). */
@@ -122,7 +127,11 @@ export function TalkingAvatar({
122
127
  const ro = new ResizeObserver(resize);
123
128
  ro.observe(mount);
124
129
 
125
- new GLTFLoader().load(
130
+ const draco = new DRACOLoader();
131
+ draco.setDecoderPath(DRACO_DECODER_PATH);
132
+ const loader = new GLTFLoader();
133
+ loader.setDRACOLoader(draco);
134
+ loader.load(
126
135
  src,
127
136
  (gltf) => {
128
137
  if (disposed) return;
@@ -210,6 +219,7 @@ export function TalkingAvatar({
210
219
  disposed = true;
211
220
  cancelAnimationFrame(raf);
212
221
  ro.disconnect();
222
+ draco.dispose();
213
223
  renderer.dispose();
214
224
  if (model) scene.remove(model);
215
225
  if (renderer.domElement.parentNode === mount) {