@oeave/bakery3 0.1.0 → 0.2.0

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 (67) hide show
  1. package/README.md +10 -10
  2. package/dist/bake/index.d.ts +3 -3
  3. package/dist/bake/index.js +4 -4
  4. package/dist/{bake-DaOlenyx.d.ts → bake-DZ-CJR6f.d.ts} +8 -1
  5. package/dist/catalog/index.d.ts +5 -5
  6. package/dist/catalog/index.js +3 -3
  7. package/dist/{chunk-V3QINEEG.js → chunk-62M6XXNX.js} +58 -3
  8. package/dist/chunk-62M6XXNX.js.map +1 -0
  9. package/dist/{chunk-ARMTTZXZ.js → chunk-6FYI6AJM.js} +8 -8
  10. package/dist/chunk-6FYI6AJM.js.map +1 -0
  11. package/dist/{chunk-W6WQ5UP7.js → chunk-APWUCEEB.js} +32 -5
  12. package/dist/chunk-APWUCEEB.js.map +1 -0
  13. package/dist/{chunk-6YVQANMW.js → chunk-HNMSWQU7.js} +262 -16
  14. package/dist/chunk-HNMSWQU7.js.map +1 -0
  15. package/dist/{chunk-HQTUFVMM.js → chunk-JFYUDERE.js} +3 -3
  16. package/dist/chunk-JFYUDERE.js.map +1 -0
  17. package/dist/{chunk-TGFNQBKC.js → chunk-KNUAOILG.js} +5 -5
  18. package/dist/chunk-KNUAOILG.js.map +1 -0
  19. package/dist/chunk-KZLVTSBI.js +191 -0
  20. package/dist/chunk-KZLVTSBI.js.map +1 -0
  21. package/dist/{chunk-MD2U6S4N.js → chunk-LAKXC4WR.js} +218 -142
  22. package/dist/chunk-LAKXC4WR.js.map +1 -0
  23. package/dist/{chunk-25ZXSVQ3.js → chunk-NXBAZGNB.js} +3 -3
  24. package/dist/{chunk-25ZXSVQ3.js.map → chunk-NXBAZGNB.js.map} +1 -1
  25. package/dist/{chunk-54WJDN5R.js → chunk-QRCT5UGZ.js} +4 -4
  26. package/dist/{chunk-54WJDN5R.js.map → chunk-QRCT5UGZ.js.map} +1 -1
  27. package/dist/{chunk-APBOWWSV.js → chunk-UWBP7B54.js} +3 -3
  28. package/dist/chunk-UWBP7B54.js.map +1 -0
  29. package/dist/{chunk-WBIAFIHV.js → chunk-XK35ANPJ.js} +3 -3
  30. package/dist/{chunk-WBIAFIHV.js.map → chunk-XK35ANPJ.js.map} +1 -1
  31. package/dist/{chunk-CX4WTVGH.js → chunk-Z7IYVH22.js} +386 -97
  32. package/dist/chunk-Z7IYVH22.js.map +1 -0
  33. package/dist/devtools/index.d.ts +3 -3
  34. package/dist/devtools/index.js +9 -9
  35. package/dist/index.d.ts +39 -8
  36. package/dist/index.js +10 -10
  37. package/dist/node/index.cjs +266 -141
  38. package/dist/node/index.cjs.map +1 -1
  39. package/dist/node/index.d.cts +152 -87
  40. package/dist/node/index.d.ts +27 -6
  41. package/dist/node/index.js +52 -3
  42. package/dist/node/index.js.map +1 -1
  43. package/dist/{prepare-C5qVvaw4.d.ts → prepare-BtjY4G3q.d.ts} +1 -1
  44. package/dist/presets/index.d.ts +37 -1
  45. package/dist/presets/index.js +4 -4
  46. package/dist/presets/index.js.map +1 -1
  47. package/dist/r3f/index.d.ts +4 -4
  48. package/dist/r3f/index.js +12 -12
  49. package/dist/{room-S5TLCK4F.js → room-FS26KAPQ.js} +6 -6
  50. package/dist/{room-S5TLCK4F.js.map → room-FS26KAPQ.js.map} +1 -1
  51. package/dist/{rooms.gen-vhj6sFW5.d.ts → rooms.gen-DItzBR9k.d.ts} +112 -84
  52. package/dist/session-VCIQEO26.js +9 -0
  53. package/dist/{session-YCQS4MRH.js.map → session-VCIQEO26.js.map} +1 -1
  54. package/dist/{testRun-BIPXaVPb.d.ts → testRun-20OARnQr.d.ts} +12 -3
  55. package/package.json +1 -1
  56. package/dist/chunk-6YVQANMW.js.map +0 -1
  57. package/dist/chunk-AF5BIELI.js +0 -70
  58. package/dist/chunk-AF5BIELI.js.map +0 -1
  59. package/dist/chunk-APBOWWSV.js.map +0 -1
  60. package/dist/chunk-ARMTTZXZ.js.map +0 -1
  61. package/dist/chunk-CX4WTVGH.js.map +0 -1
  62. package/dist/chunk-HQTUFVMM.js.map +0 -1
  63. package/dist/chunk-MD2U6S4N.js.map +0 -1
  64. package/dist/chunk-TGFNQBKC.js.map +0 -1
  65. package/dist/chunk-V3QINEEG.js.map +0 -1
  66. package/dist/chunk-W6WQ5UP7.js.map +0 -1
  67. package/dist/session-YCQS4MRH.js +0 -9
@@ -0,0 +1,191 @@
1
+ // src/capture/sha256.ts
2
+ var K = new Uint32Array([
3
+ 1116352408,
4
+ 1899447441,
5
+ 3049323471,
6
+ 3921009573,
7
+ 961987163,
8
+ 1508970993,
9
+ 2453635748,
10
+ 2870763221,
11
+ 3624381080,
12
+ 310598401,
13
+ 607225278,
14
+ 1426881987,
15
+ 1925078388,
16
+ 2162078206,
17
+ 2614888103,
18
+ 3248222580,
19
+ 3835390401,
20
+ 4022224774,
21
+ 264347078,
22
+ 604807628,
23
+ 770255983,
24
+ 1249150122,
25
+ 1555081692,
26
+ 1996064986,
27
+ 2554220882,
28
+ 2821834349,
29
+ 2952996808,
30
+ 3210313671,
31
+ 3336571891,
32
+ 3584528711,
33
+ 113926993,
34
+ 338241895,
35
+ 666307205,
36
+ 773529912,
37
+ 1294757372,
38
+ 1396182291,
39
+ 1695183700,
40
+ 1986661051,
41
+ 2177026350,
42
+ 2456956037,
43
+ 2730485921,
44
+ 2820302411,
45
+ 3259730800,
46
+ 3345764771,
47
+ 3516065817,
48
+ 3600352804,
49
+ 4094571909,
50
+ 275423344,
51
+ 430227734,
52
+ 506948616,
53
+ 659060556,
54
+ 883997877,
55
+ 958139571,
56
+ 1322822218,
57
+ 1537002063,
58
+ 1747873779,
59
+ 1955562222,
60
+ 2024104815,
61
+ 2227730452,
62
+ 2361852424,
63
+ 2428436474,
64
+ 2756734187,
65
+ 3204031479,
66
+ 3329325298
67
+ ]);
68
+ function sha256Js(bytes) {
69
+ const h = new Uint32Array([
70
+ 1779033703,
71
+ 3144134277,
72
+ 1013904242,
73
+ 2773480762,
74
+ 1359893119,
75
+ 2600822924,
76
+ 528734635,
77
+ 1541459225
78
+ ]);
79
+ const w = new Uint32Array(64);
80
+ const length = bytes.length;
81
+ const whole = length - length % 64;
82
+ for (let offset = 0; offset < whole; offset += 64) block(h, w, bytes, offset);
83
+ const tail = new Uint8Array(length - whole < 56 ? 64 : 128);
84
+ tail.set(bytes.subarray(whole));
85
+ tail[length - whole] = 128;
86
+ const bits = length * 8;
87
+ const end = tail.length;
88
+ const high = Math.floor(bits / 4294967296);
89
+ tail[end - 8] = high >>> 24;
90
+ tail[end - 7] = high >>> 16;
91
+ tail[end - 6] = high >>> 8;
92
+ tail[end - 5] = high;
93
+ tail[end - 4] = bits >>> 24;
94
+ tail[end - 3] = bits >>> 16;
95
+ tail[end - 2] = bits >>> 8;
96
+ tail[end - 1] = bits;
97
+ for (let offset = 0; offset < end; offset += 64) block(h, w, tail, offset);
98
+ const out = new Uint8Array(32);
99
+ for (let i = 0; i < 8; i++) {
100
+ out[i * 4] = h[i] >>> 24;
101
+ out[i * 4 + 1] = h[i] >>> 16;
102
+ out[i * 4 + 2] = h[i] >>> 8;
103
+ out[i * 4 + 3] = h[i];
104
+ }
105
+ return out;
106
+ }
107
+ function block(h, w, b, o) {
108
+ for (let i = 0; i < 16; i++) {
109
+ const j = o + i * 4;
110
+ w[i] = b[j] << 24 | b[j + 1] << 16 | b[j + 2] << 8 | b[j + 3];
111
+ }
112
+ for (let i = 16; i < 64; i++) {
113
+ const a2 = w[i - 15];
114
+ const c2 = w[i - 2];
115
+ const s0 = (a2 >>> 7 | a2 << 25) ^ (a2 >>> 18 | a2 << 14) ^ a2 >>> 3;
116
+ const s1 = (c2 >>> 17 | c2 << 15) ^ (c2 >>> 19 | c2 << 13) ^ c2 >>> 10;
117
+ w[i] = w[i - 16] + s0 + w[i - 7] + s1 | 0;
118
+ }
119
+ let a = h[0];
120
+ let bb = h[1];
121
+ let c = h[2];
122
+ let d = h[3];
123
+ let e = h[4];
124
+ let f = h[5];
125
+ let g = h[6];
126
+ let hh = h[7];
127
+ for (let i = 0; i < 64; i++) {
128
+ const S1 = (e >>> 6 | e << 26) ^ (e >>> 11 | e << 21) ^ (e >>> 25 | e << 7);
129
+ const ch = e & f ^ ~e & g;
130
+ const t1 = hh + S1 + ch + K[i] + w[i] | 0;
131
+ const S0 = (a >>> 2 | a << 30) ^ (a >>> 13 | a << 19) ^ (a >>> 22 | a << 10);
132
+ const maj = a & bb ^ a & c ^ bb & c;
133
+ const t2 = S0 + maj | 0;
134
+ hh = g;
135
+ g = f;
136
+ f = e;
137
+ e = d + t1 | 0;
138
+ d = c;
139
+ c = bb;
140
+ bb = a;
141
+ a = t1 + t2 | 0;
142
+ }
143
+ h[0] = h[0] + a;
144
+ h[1] = h[1] + bb;
145
+ h[2] = h[2] + c;
146
+ h[3] = h[3] + d;
147
+ h[4] = h[4] + e;
148
+ h[5] = h[5] + f;
149
+ h[6] = h[6] + g;
150
+ h[7] = h[7] + hh;
151
+ }
152
+
153
+ // src/capture/hash.ts
154
+ async function sha256(bytes) {
155
+ const subtle = globalThis.crypto?.subtle;
156
+ if (!subtle) {
157
+ const view2 = bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes);
158
+ return `sha256:${toHex(sha256Js(view2))}`;
159
+ }
160
+ const view = bytes instanceof Uint8Array ? (
161
+ // A Uint8Array can be a window onto a larger buffer; hashing the whole
162
+ // buffer would silently hash bytes that are not part of this asset.
163
+ bytes.byteOffset === 0 && bytes.byteLength === bytes.buffer.byteLength ? bytes.buffer : bytes.slice().buffer
164
+ ) : bytes;
165
+ const digest = await subtle.digest("SHA-256", view);
166
+ return `sha256:${toHex(new Uint8Array(digest))}`;
167
+ }
168
+ function toHex(bytes) {
169
+ let out = "";
170
+ for (const byte of bytes) out += byte.toString(16).padStart(2, "0");
171
+ return out;
172
+ }
173
+
174
+ // src/capture/environmentSource.ts
175
+ var ENVIRONMENT_SOURCES = /* @__PURE__ */ new WeakMap();
176
+ var PRESET_SOURCES = /* @__PURE__ */ new WeakSet();
177
+ function rememberEnvironmentSource(texture, source, options = {}) {
178
+ ENVIRONMENT_SOURCES.set(texture, source);
179
+ if (options.preset) PRESET_SOURCES.add(texture);
180
+ else PRESET_SOURCES.delete(texture);
181
+ }
182
+ function environmentSourceFor(texture) {
183
+ return ENVIRONMENT_SOURCES.get(texture);
184
+ }
185
+ function isPresetEnvironment(texture) {
186
+ return PRESET_SOURCES.has(texture);
187
+ }
188
+
189
+ export { environmentSourceFor, isPresetEnvironment, rememberEnvironmentSource, sha256 };
190
+ //# sourceMappingURL=chunk-KZLVTSBI.js.map
191
+ //# sourceMappingURL=chunk-KZLVTSBI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/capture/sha256.ts","../src/capture/hash.ts","../src/capture/environmentSource.ts"],"names":["a","c","view"],"mappings":"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","file":"chunk-KZLVTSBI.js","sourcesContent":["/**\n * SHA-256 in plain JavaScript, for a page without `crypto.subtle`.\n *\n * Browsers expose `crypto.subtle` only on a secure origin, and\n * `http://192.168.1.20:3000` (a phone on the same Wi-Fi, or a tailnet\n * address) is not one. Hashing is the only thing a render needs from it, so\n * the capture falls back to this rather than refusing. It is FIPS 180-4 over\n * 64-byte blocks, read straight from the bytes with no copy of the input;\n * `__tests__/sha256.test.ts` holds it to the native digest.\n */\n\nconst K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1,\n 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786,\n 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b,\n 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a,\n 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,\n]);\n\n/** The SHA-256 digest of `bytes`, 32 bytes. */\nexport function sha256Js(bytes: Uint8Array): Uint8Array {\n const h = new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c,\n 0x1f83d9ab, 0x5be0cd19,\n ]);\n const w = new Uint32Array(64);\n const length = bytes.length;\n const whole = length - (length % 64);\n for (let offset = 0; offset < whole; offset += 64) block(h, w, bytes, offset);\n\n // The tail: what is left of the input, a 1 bit, zeros, and the length in\n // bits as a big-endian 64-bit number, in one block or two.\n const tail = new Uint8Array(length - whole < 56 ? 64 : 128);\n tail.set(bytes.subarray(whole));\n tail[length - whole] = 0x80;\n const bits = length * 8;\n const end = tail.length;\n const high = Math.floor(bits / 0x100000000);\n tail[end - 8] = high >>> 24;\n tail[end - 7] = high >>> 16;\n tail[end - 6] = high >>> 8;\n tail[end - 5] = high;\n tail[end - 4] = bits >>> 24;\n tail[end - 3] = bits >>> 16;\n tail[end - 2] = bits >>> 8;\n tail[end - 1] = bits;\n for (let offset = 0; offset < end; offset += 64) block(h, w, tail, offset);\n\n const out = new Uint8Array(32);\n for (let i = 0; i < 8; i++) {\n out[i * 4] = h[i]! >>> 24;\n out[i * 4 + 1] = h[i]! >>> 16;\n out[i * 4 + 2] = h[i]! >>> 8;\n out[i * 4 + 3] = h[i]!;\n }\n return out;\n}\n\nfunction block(h: Uint32Array, w: Uint32Array, b: Uint8Array, o: number): void {\n for (let i = 0; i < 16; i++) {\n const j = o + i * 4;\n w[i] = (b[j]! << 24) | (b[j + 1]! << 16) | (b[j + 2]! << 8) | b[j + 3]!;\n }\n for (let i = 16; i < 64; i++) {\n const a = w[i - 15]!;\n const c = w[i - 2]!;\n const s0 = ((a >>> 7) | (a << 25)) ^ ((a >>> 18) | (a << 14)) ^ (a >>> 3);\n const s1 = ((c >>> 17) | (c << 15)) ^ ((c >>> 19) | (c << 13)) ^ (c >>> 10);\n w[i] = (w[i - 16]! + s0 + w[i - 7]! + s1) | 0;\n }\n let a = h[0]!;\n let bb = h[1]!;\n let c = h[2]!;\n let d = h[3]!;\n let e = h[4]!;\n let f = h[5]!;\n let g = h[6]!;\n let hh = h[7]!;\n for (let i = 0; i < 64; i++) {\n const S1 =\n ((e >>> 6) | (e << 26)) ^\n ((e >>> 11) | (e << 21)) ^\n ((e >>> 25) | (e << 7));\n const ch = (e & f) ^ (~e & g);\n const t1 = (hh + S1 + ch + K[i]! + w[i]!) | 0;\n const S0 =\n ((a >>> 2) | (a << 30)) ^\n ((a >>> 13) | (a << 19)) ^\n ((a >>> 22) | (a << 10));\n const maj = (a & bb) ^ (a & c) ^ (bb & c);\n const t2 = (S0 + maj) | 0;\n hh = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = bb;\n bb = a;\n a = (t1 + t2) | 0;\n }\n h[0] = h[0]! + a;\n h[1] = h[1]! + bb;\n h[2] = h[2]! + c;\n h[3] = h[3]! + d;\n h[4] = h[4]! + e;\n h[5] = h[5]! + f;\n h[6] = h[6]! + g;\n h[7] = h[7]! + hh;\n}\n","/**\n * Content hashing.\n *\n * SHA-256 over the exact bytes, so the same GLB produced twice is uploaded\n * once and the second render of a scene uploads only the manifest.\n *\n * `crypto.subtle` is only available on a secure origin, and\n * `http://192.168.x.x:3000` is exactly how a developer tests a configurator\n * on their phone. There the digest comes from `sha256Js`: slower, and the same\n * bytes, so a render works on any origin. SDK 0.1.0 refused here instead,\n * with an error that `/docs/troubleshooting#secure-origin` still explains.\n */\n\nimport { sha256Js } from './sha256.js';\n\nexport async function sha256(bytes: ArrayBuffer | Uint8Array): Promise<string> {\n const subtle = globalThis.crypto?.subtle;\n if (!subtle) {\n const view = bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes);\n return `sha256:${toHex(sha256Js(view))}`;\n }\n const view =\n bytes instanceof Uint8Array\n ? // A Uint8Array can be a window onto a larger buffer; hashing the whole\n // buffer would silently hash bytes that are not part of this asset.\n bytes.byteOffset === 0 && bytes.byteLength === bytes.buffer.byteLength\n ? bytes.buffer\n : bytes.slice().buffer\n : bytes;\n const digest = await subtle.digest('SHA-256', view as ArrayBuffer);\n return `sha256:${toHex(new Uint8Array(digest))}`;\n}\n\nfunction toHex(bytes: Uint8Array): string {\n let out = '';\n for (const byte of bytes) out += byte.toString(16).padStart(2, '0');\n return out;\n}\n","import type { Texture } from 'three';\n\n/**\n * The environment's full-quality source, remembered when its lightweight\n * three.js texture is loaded.\n *\n * By the time an HDRI is on `scene.environment` it may have been through\n * PMREM and no longer expose the original equirectangular pixels. A preset\n * environment also previews a small map while the render uses the full one.\n */\nconst ENVIRONMENT_SOURCES = new WeakMap<Texture, string | ArrayBuffer>();\n/** Textures whose source is a URL in the preset library, which the renderer\n * has and a manifest may name. */\nconst PRESET_SOURCES = new WeakSet<Texture>();\n\nexport function rememberEnvironmentSource(\n texture: Texture,\n source: string | ArrayBuffer,\n options: { preset?: boolean } = {},\n): void {\n ENVIRONMENT_SOURCES.set(texture, source);\n if (options.preset) PRESET_SOURCES.add(texture);\n else PRESET_SOURCES.delete(texture);\n}\n\nexport function environmentSourceFor(\n texture: Texture,\n): string | ArrayBuffer | undefined {\n return ENVIRONMENT_SOURCES.get(texture);\n}\n\n/** Whether that source is a preset environment, as opposed to a URL of the\n * developer's own. */\nexport function isPresetEnvironment(texture: Texture): boolean {\n return PRESET_SOURCES.has(texture);\n}\n"]}