ugly-app 0.1.752 → 0.1.753
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/dist/cli/version.d.ts +1 -1
- package/dist/cli/version.js +1 -1
- package/dist/server/ai/ImageGenBase.d.ts +4 -0
- package/dist/server/ai/ImageGenBase.d.ts.map +1 -1
- package/dist/shared/Pricing.d.ts +3 -0
- package/dist/shared/Pricing.d.ts.map +1 -1
- package/dist/shared/Pricing.js +9 -0
- package/dist/shared/Pricing.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/version.ts +1 -1
- package/src/server/ai/ImageGenBase.ts +4 -0
- package/src/shared/Pricing.ts +12 -0
package/dist/cli/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const CLI_VERSION = "0.1.
|
|
1
|
+
export declare const CLI_VERSION = "0.1.753";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/cli/version.js
CHANGED
|
@@ -21,6 +21,10 @@ export interface ImageBase64Result {
|
|
|
21
21
|
mime?: ImageMimeType;
|
|
22
22
|
width: number;
|
|
23
23
|
height: number;
|
|
24
|
+
/** Real upstream provider cost (USD) for this image, computed by the image
|
|
25
|
+
* gen factory from the winning provider's catalog price. The billing layer
|
|
26
|
+
* applies the platform margin to this. Absent when the provider is unknown. */
|
|
27
|
+
realCostUsd?: number;
|
|
24
28
|
description?: string;
|
|
25
29
|
[id: string]: unknown;
|
|
26
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageGenBase.d.ts","sourceRoot":"","sources":["../../../src/server/ai/ImageGenBase.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AAGD,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,SAAS,CAAC,EAAE;QACV,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,CACR,KAAK,EAAE,mBAAmB,KACvB,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;CAC9C"}
|
|
1
|
+
{"version":3,"file":"ImageGenBase.d.ts","sourceRoot":"","sources":["../../../src/server/ai/ImageGenBase.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf;;oFAEgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AAGD,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,SAAS,CAAC,EAAE;QACV,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,CACR,KAAK,EAAE,mBAAmB,KACvB,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;CAC9C"}
|
package/dist/shared/Pricing.d.ts
CHANGED
|
@@ -60,4 +60,7 @@ export declare const PLACES_USD: {
|
|
|
60
60
|
};
|
|
61
61
|
export type PlacesCostKind = keyof typeof PLACES_USD;
|
|
62
62
|
export declare function placesCostUsd(kind: PlacesCostKind): number;
|
|
63
|
+
export declare const MARGIN_MULTIPLIER = 2;
|
|
64
|
+
/** User-facing charge (USD) for a real provider cost. Clamps junk to 0. */
|
|
65
|
+
export declare function applyMargin(realCostUsd: number): number;
|
|
63
66
|
//# sourceMappingURL=Pricing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pricing.d.ts","sourceRoot":"","sources":["../../src/shared/Pricing.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,YAAY;IAC3B,iEAAiE;IACjE,EAAE,EAAE,MAAM,CAAC;IACX,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;CAmB0B,CAAC;AAElD,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,UAAU,CAAC;AAEjD,eAAO,MAAM,iBAAiB,EAAE,UAAmC,CAAC;AAEpE;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,CAO3D;AAED,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,6DAA6D;AAC7D,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEtE;AAID,8CAA8C;AAC9C,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEvD;AAID,eAAO,MAAM,UAAU;;;;CAIb,CAAC;AACX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,UAAU,CAAC;AAErD,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAE1D;AAID,2DAA2D;AAC3D,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAID,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAE1C,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAID,eAAO,MAAM,UAAU;;;CAGb,CAAC;AACX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,UAAU,CAAC;AAErD,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAE1D"}
|
|
1
|
+
{"version":3,"file":"Pricing.d.ts","sourceRoot":"","sources":["../../src/shared/Pricing.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,YAAY;IAC3B,iEAAiE;IACjE,EAAE,EAAE,MAAM,CAAC;IACX,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;CAmB0B,CAAC;AAElD,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,UAAU,CAAC;AAEjD,eAAO,MAAM,iBAAiB,EAAE,UAAmC,CAAC;AAEpE;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,CAO3D;AAED,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,6DAA6D;AAC7D,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEtE;AAID,8CAA8C;AAC9C,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEvD;AAID,eAAO,MAAM,UAAU;;;;CAIb,CAAC;AACX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,UAAU,CAAC;AAErD,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAE1D;AAID,2DAA2D;AAC3D,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAID,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAE1C,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAID,eAAO,MAAM,UAAU;;;CAGb,CAAC;AACX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,UAAU,CAAC;AAErD,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAE1D;AAOD,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC,2EAA2E;AAC3E,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEvD"}
|
package/dist/shared/Pricing.js
CHANGED
|
@@ -87,4 +87,13 @@ export const PLACES_USD = {
|
|
|
87
87
|
export function placesCostUsd(kind) {
|
|
88
88
|
return PLACES_USD[kind];
|
|
89
89
|
}
|
|
90
|
+
// ─── Margin — uniform markup on real provider cost ───────────────────────────
|
|
91
|
+
// The platform's core business-model knob: the user-facing charge is real
|
|
92
|
+
// provider cost × MARGIN_MULTIPLIER. Defined ONCE here so the billing layer
|
|
93
|
+
// (ugly.bot) and app-side cost estimates can never drift from each other.
|
|
94
|
+
export const MARGIN_MULTIPLIER = 2;
|
|
95
|
+
/** User-facing charge (USD) for a real provider cost. Clamps junk to 0. */
|
|
96
|
+
export function applyMargin(realCostUsd) {
|
|
97
|
+
return realCostUsd > 0 ? realCostUsd * MARGIN_MULTIPLIER : 0;
|
|
98
|
+
}
|
|
90
99
|
//# sourceMappingURL=Pricing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pricing.js","sourceRoot":"","sources":["../../src/shared/Pricing.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Pricing.js","sourceRoot":"","sources":["../../src/shared/Pricing.ts"],"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.
|
|
3
|
+
"version": "0.1.753",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"comment:files": "Allowlist what ships to npm. dist = runtime; src = sourcemap targets (dist/*.js.map reference ../../src/); templates = CLI scaffold. Everything else at repo root (.pgdata local Postgres, coverage, assets/icons sources, test/, test-results/) is excluded by omission. The !negations strip the scaffold's installed deps + cruft (templates/node_modules is 200MB+ and must never ship). package.json/README/LICENSE ship automatically.",
|
|
6
6
|
"files": [
|
package/src/cli/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Auto-generated by prebuild — do not edit manually
|
|
2
|
-
export const CLI_VERSION = "0.1.
|
|
2
|
+
export const CLI_VERSION = "0.1.753";
|
|
@@ -21,6 +21,10 @@ export interface ImageBase64Result {
|
|
|
21
21
|
mime?: ImageMimeType;
|
|
22
22
|
width: number;
|
|
23
23
|
height: number;
|
|
24
|
+
/** Real upstream provider cost (USD) for this image, computed by the image
|
|
25
|
+
* gen factory from the winning provider's catalog price. The billing layer
|
|
26
|
+
* applies the platform margin to this. Absent when the provider is unknown. */
|
|
27
|
+
realCostUsd?: number;
|
|
24
28
|
description?: string;
|
|
25
29
|
[id: string]: unknown;
|
|
26
30
|
}
|
package/src/shared/Pricing.ts
CHANGED
|
@@ -121,3 +121,15 @@ export type PlacesCostKind = keyof typeof PLACES_USD;
|
|
|
121
121
|
export function placesCostUsd(kind: PlacesCostKind): number {
|
|
122
122
|
return PLACES_USD[kind];
|
|
123
123
|
}
|
|
124
|
+
|
|
125
|
+
// ─── Margin — uniform markup on real provider cost ───────────────────────────
|
|
126
|
+
// The platform's core business-model knob: the user-facing charge is real
|
|
127
|
+
// provider cost × MARGIN_MULTIPLIER. Defined ONCE here so the billing layer
|
|
128
|
+
// (ugly.bot) and app-side cost estimates can never drift from each other.
|
|
129
|
+
|
|
130
|
+
export const MARGIN_MULTIPLIER = 2;
|
|
131
|
+
|
|
132
|
+
/** User-facing charge (USD) for a real provider cost. Clamps junk to 0. */
|
|
133
|
+
export function applyMargin(realCostUsd: number): number {
|
|
134
|
+
return realCostUsd > 0 ? realCostUsd * MARGIN_MULTIPLIER : 0;
|
|
135
|
+
}
|