ugly-app 0.1.538 → 0.1.539

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 +1 @@
1
- {"version":3,"file":"buildWorkers.d.ts","sourceRoot":"","sources":["../../src/cli/buildWorkers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAiCH,UAAU,mBAAmB;IAC3B,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,kBAAkB;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,eAAe,CACnC,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAqG7B"}
1
+ {"version":3,"file":"buildWorkers.d.ts","sourceRoot":"","sources":["../../src/cli/buildWorkers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAiCH,UAAU,mBAAmB;IAC3B,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,kBAAkB;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,eAAe,CACnC,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAyG7B"}
@@ -91,17 +91,21 @@ export async function runBuildWorkers(opts = {}) {
91
91
  const rewrittenHtml = rewriteHtmlForBuildId(rawHtml, buildId);
92
92
  await writeFile(path.join(outDir, 'index.html'), rewrittenHtml, 'utf-8');
93
93
  // ── Generate the wrapper entry. esbuild bundles this; it imports
94
- // the user's untouched `server/workers.ts` and re-exports the wrapped
95
- // app + DO classes.
94
+ // the user's untouched `server/workers.ts`, wraps the default app with
95
+ // assets, and re-exports ALL of the user's named exports via `export *`.
96
+ // `export *` carries every Durable Object / Container class the app
97
+ // declares (CollectionDO, SessionDO, and any custom ones like
98
+ // EmbedContainer) without the build needing to know their names — it
99
+ // skips the default export, so the wrapped `app` below is the sole default.
96
100
  const generatedEntry = path.join(outDir, 'entry.generated.ts');
97
101
  await writeFile(generatedEntry, `// AUTO-GENERATED by ugly-app build:workers — do not edit.\n` +
98
102
  `import { wrapWithAssets } from 'ugly-app/server/adapter/workers';\n` +
99
- `import baseApp, { CollectionDO, SessionDO } from ${JSON.stringify(entry)};\n` +
103
+ `import baseApp from ${JSON.stringify(entry)};\n` +
104
+ `export * from ${JSON.stringify(entry)};\n` +
100
105
  `const indexHtml = ${JSON.stringify(rewrittenHtml)};\n` +
101
106
  `const buildId = ${JSON.stringify(buildId)};\n` +
102
107
  `const app = wrapWithAssets(baseApp, { indexHtml, buildId });\n` +
103
- `export default app;\n` +
104
- `export { CollectionDO, SessionDO };\n`, 'utf-8');
108
+ `export default app;\n`, 'utf-8');
105
109
  const result = await build({
106
110
  entryPoints: [generatedEntry],
107
111
  bundle: true,
@@ -1 +1 @@
1
- {"version":3,"file":"buildWorkers.js","sourceRoot":"","sources":["../../src/cli/buildWorkers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildWorkers.js","sourceRoot":"","sources":["../../src/cli/buildWorkers.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const CLI_VERSION = "0.1.538";
1
+ export declare const CLI_VERSION = "0.1.539";
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.538";
2
+ export const CLI_VERSION = "0.1.539";
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"uglyBotUrl.d.ts","sourceRoot":"","sources":["../../src/shared/uglyBotUrl.ts"],"names":[],"mappings":"AAIA,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAKD,eAAO,MAAM,YAAY,QAAkB,CAAC;AAC5C,eAAO,MAAM,eAAe,QAAoB,CAAC;AACjD,eAAO,MAAM,gBAAgB,QAAqB,CAAC"}
1
+ {"version":3,"file":"uglyBotUrl.d.ts","sourceRoot":"","sources":["../../src/shared/uglyBotUrl.ts"],"names":[],"mappings":"AA4BA,wBAAgB,aAAa,IAAI,MAAM,CAItC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAMxC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;AAKD,eAAO,MAAM,YAAY,QAAkB,CAAC;AAC5C,eAAO,MAAM,eAAe,QAAoB,CAAC;AACjD,eAAO,MAAM,gBAAgB,QAAqB,CAAC"}
@@ -1,18 +1,53 @@
1
+ /**
2
+ * Resolves the ugly.bot platform URL (auth /verify, OAuth popup, AI/push/
3
+ * search proxy host, CLI project-token minting).
4
+ *
5
+ * Precedence:
6
+ * 1. `UGLY_BOT_URL` env override — point a project/test run at an alternate
7
+ * platform deployment (e.g. `https://beta.ugly.bot`) without code changes.
8
+ * 2. `UGLY_BOT_LOCAL=1` → localhost dev server.
9
+ * 3. Production default → https://ugly.bot.
10
+ *
11
+ * The WS + CDN URLs derive from `UGLY_BOT_URL` when only it is set (http→ws,
12
+ * and a `cdn.` host swap), or take their own explicit override.
13
+ */
14
+ function envVar(key) {
15
+ if (typeof process === 'undefined' || !process.env)
16
+ return undefined;
17
+ const v = process.env[key];
18
+ return typeof v === 'string' && v.length > 0 ? v : undefined;
19
+ }
1
20
  function isLocal() {
2
- return typeof process !== 'undefined' && process.env?.['UGLY_BOT_LOCAL'] === '1';
21
+ return envVar('UGLY_BOT_LOCAL') === '1';
22
+ }
23
+ /** Trim a trailing slash so callers can append `/v1/...` cleanly. */
24
+ function clean(url) {
25
+ return url.replace(/\/+$/, '');
3
26
  }
4
27
  export function getUglyBotUrl() {
28
+ const override = envVar('UGLY_BOT_URL');
29
+ if (override)
30
+ return clean(override);
5
31
  return isLocal() ? 'http://localhost:3000' : 'https://ugly.bot';
6
32
  }
7
33
  export function getUglyBotWsUrl() {
34
+ const wsOverride = envVar('UGLY_BOT_WS_URL');
35
+ if (wsOverride)
36
+ return clean(wsOverride);
37
+ const httpOverride = envVar('UGLY_BOT_URL');
38
+ if (httpOverride)
39
+ return clean(httpOverride).replace(/^http/, 'ws');
8
40
  return isLocal() ? 'ws://localhost:3000' : 'wss://ugly.bot';
9
41
  }
10
42
  export function getUglyBotCdnUrl() {
43
+ const cdnOverride = envVar('UGLY_BOT_CDN_URL');
44
+ if (cdnOverride)
45
+ return clean(cdnOverride);
11
46
  return isLocal() ? 'http://localhost:9000' : 'https://cdn.ugly.bot';
12
47
  }
13
48
  // Backwards compat — static values for code that imports these at module level.
14
49
  // These are evaluated once at import time, so they reflect the env at that moment.
15
- // Prefer the getter functions for code that runs after UGLY_BOT_LOCAL may change.
50
+ // Prefer the getter functions for code that runs after the env may change.
16
51
  export const UGLY_BOT_URL = getUglyBotUrl();
17
52
  export const UGLY_BOT_WS_URL = getUglyBotWsUrl();
18
53
  export const UGLY_BOT_CDN_URL = getUglyBotCdnUrl();
@@ -1 +1 @@
1
- {"version":3,"file":"uglyBotUrl.js","sourceRoot":"","sources":["../../src/shared/uglyBotUrl.ts"],"names":[],"mappings":"AAAA,SAAS,OAAO;IACd,OAAO,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,GAAG,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,kBAAkB,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,gBAAgB,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,sBAAsB,CAAC;AACtE,CAAC;AAED,gFAAgF;AAChF,mFAAmF;AACnF,kFAAkF;AAClF,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,EAAE,CAAC;AAC5C,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,EAAE,CAAC;AACjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"uglyBotUrl.js","sourceRoot":"","sources":["../../src/shared/uglyBotUrl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,SAAS,MAAM,CAAC,GAAW;IACzB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IACrE,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED,SAAS,OAAO;IACd,OAAO,MAAM,CAAC,gBAAgB,CAAC,KAAK,GAAG,CAAC;AAC1C,CAAC;AAED,qEAAqE;AACrE,SAAS,KAAK,CAAC,GAAW;IACxB,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;IACxC,IAAI,QAAQ;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;IACrC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,kBAAkB,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC7C,IAAI,UAAU;QAAE,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;IAC5C,IAAI,YAAY;QAAE,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACpE,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,gBAAgB,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC/C,IAAI,WAAW;QAAE,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3C,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,sBAAsB,CAAC;AACtE,CAAC;AAED,gFAAgF;AAChF,mFAAmF;AACnF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,EAAE,CAAC;AAC5C,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,EAAE,CAAC;AACjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugly-app",
3
- "version": "0.1.538",
3
+ "version": "0.1.539",
4
4
  "type": "module",
5
5
  "main": "./dist/server/index.js",
6
6
  "exports": {
@@ -129,19 +129,23 @@ export async function runBuildWorkers(
129
129
  await writeFile(path.join(outDir, 'index.html'), rewrittenHtml, 'utf-8');
130
130
 
131
131
  // ── Generate the wrapper entry. esbuild bundles this; it imports
132
- // the user's untouched `server/workers.ts` and re-exports the wrapped
133
- // app + DO classes.
132
+ // the user's untouched `server/workers.ts`, wraps the default app with
133
+ // assets, and re-exports ALL of the user's named exports via `export *`.
134
+ // `export *` carries every Durable Object / Container class the app
135
+ // declares (CollectionDO, SessionDO, and any custom ones like
136
+ // EmbedContainer) without the build needing to know their names — it
137
+ // skips the default export, so the wrapped `app` below is the sole default.
134
138
  const generatedEntry = path.join(outDir, 'entry.generated.ts');
135
139
  await writeFile(
136
140
  generatedEntry,
137
141
  `// AUTO-GENERATED by ugly-app build:workers — do not edit.\n` +
138
142
  `import { wrapWithAssets } from 'ugly-app/server/adapter/workers';\n` +
139
- `import baseApp, { CollectionDO, SessionDO } from ${JSON.stringify(entry)};\n` +
143
+ `import baseApp from ${JSON.stringify(entry)};\n` +
144
+ `export * from ${JSON.stringify(entry)};\n` +
140
145
  `const indexHtml = ${JSON.stringify(rewrittenHtml)};\n` +
141
146
  `const buildId = ${JSON.stringify(buildId)};\n` +
142
147
  `const app = wrapWithAssets(baseApp, { indexHtml, buildId });\n` +
143
- `export default app;\n` +
144
- `export { CollectionDO, SessionDO };\n`,
148
+ `export default app;\n`,
145
149
  'utf-8',
146
150
  );
147
151
 
@@ -1,2 +1,2 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.538";
2
+ export const CLI_VERSION = "0.1.539";
@@ -1,22 +1,54 @@
1
+ /**
2
+ * Resolves the ugly.bot platform URL (auth /verify, OAuth popup, AI/push/
3
+ * search proxy host, CLI project-token minting).
4
+ *
5
+ * Precedence:
6
+ * 1. `UGLY_BOT_URL` env override — point a project/test run at an alternate
7
+ * platform deployment (e.g. `https://beta.ugly.bot`) without code changes.
8
+ * 2. `UGLY_BOT_LOCAL=1` → localhost dev server.
9
+ * 3. Production default → https://ugly.bot.
10
+ *
11
+ * The WS + CDN URLs derive from `UGLY_BOT_URL` when only it is set (http→ws,
12
+ * and a `cdn.` host swap), or take their own explicit override.
13
+ */
14
+ function envVar(key: string): string | undefined {
15
+ if (typeof process === 'undefined' || !process.env) return undefined;
16
+ const v = process.env[key];
17
+ return typeof v === 'string' && v.length > 0 ? v : undefined;
18
+ }
19
+
1
20
  function isLocal(): boolean {
2
- return typeof process !== 'undefined' && process.env?.['UGLY_BOT_LOCAL'] === '1';
21
+ return envVar('UGLY_BOT_LOCAL') === '1';
22
+ }
23
+
24
+ /** Trim a trailing slash so callers can append `/v1/...` cleanly. */
25
+ function clean(url: string): string {
26
+ return url.replace(/\/+$/, '');
3
27
  }
4
28
 
5
29
  export function getUglyBotUrl(): string {
30
+ const override = envVar('UGLY_BOT_URL');
31
+ if (override) return clean(override);
6
32
  return isLocal() ? 'http://localhost:3000' : 'https://ugly.bot';
7
33
  }
8
34
 
9
35
  export function getUglyBotWsUrl(): string {
36
+ const wsOverride = envVar('UGLY_BOT_WS_URL');
37
+ if (wsOverride) return clean(wsOverride);
38
+ const httpOverride = envVar('UGLY_BOT_URL');
39
+ if (httpOverride) return clean(httpOverride).replace(/^http/, 'ws');
10
40
  return isLocal() ? 'ws://localhost:3000' : 'wss://ugly.bot';
11
41
  }
12
42
 
13
43
  export function getUglyBotCdnUrl(): string {
44
+ const cdnOverride = envVar('UGLY_BOT_CDN_URL');
45
+ if (cdnOverride) return clean(cdnOverride);
14
46
  return isLocal() ? 'http://localhost:9000' : 'https://cdn.ugly.bot';
15
47
  }
16
48
 
17
49
  // Backwards compat — static values for code that imports these at module level.
18
50
  // These are evaluated once at import time, so they reflect the env at that moment.
19
- // Prefer the getter functions for code that runs after UGLY_BOT_LOCAL may change.
51
+ // Prefer the getter functions for code that runs after the env may change.
20
52
  export const UGLY_BOT_URL = getUglyBotUrl();
21
53
  export const UGLY_BOT_WS_URL = getUglyBotWsUrl();
22
54
  export const UGLY_BOT_CDN_URL = getUglyBotCdnUrl();