gencow 0.1.138 → 0.1.139
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/package.json +1 -1
- package/server/index.js +152 -8
- package/server/index.js.map +3 -3
package/package.json
CHANGED
package/server/index.js
CHANGED
|
@@ -125060,6 +125060,128 @@ var RAG_SYSTEM_SCHEMA_STATEMENTS = [
|
|
|
125060
125060
|
`CREATE INDEX IF NOT EXISTS idx_rag_operation_metrics_operation ON rag_operation_metrics (operation, metric_name, recorded_at DESC)`
|
|
125061
125061
|
];
|
|
125062
125062
|
|
|
125063
|
+
// ../server/src/server-template-marketplace-bootstrap.ts
|
|
125064
|
+
var TEMPLATE_MARKETPLACE_BOOTSTRAP_SQL = [
|
|
125065
|
+
`CREATE TABLE IF NOT EXISTS template_listings (
|
|
125066
|
+
id SERIAL PRIMARY KEY,
|
|
125067
|
+
slug TEXT NOT NULL UNIQUE,
|
|
125068
|
+
owner_user_id TEXT NOT NULL,
|
|
125069
|
+
source_app_id INTEGER,
|
|
125070
|
+
public_preview_app_id INTEGER,
|
|
125071
|
+
current_release_id INTEGER,
|
|
125072
|
+
title TEXT NOT NULL,
|
|
125073
|
+
summary TEXT NOT NULL DEFAULT '',
|
|
125074
|
+
description TEXT NOT NULL DEFAULT '',
|
|
125075
|
+
category TEXT,
|
|
125076
|
+
tags_json TEXT NOT NULL DEFAULT '[]',
|
|
125077
|
+
status TEXT NOT NULL DEFAULT 'draft',
|
|
125078
|
+
visibility_intent TEXT NOT NULL DEFAULT 'private',
|
|
125079
|
+
price_type TEXT NOT NULL DEFAULT 'free',
|
|
125080
|
+
price_cents INTEGER NOT NULL DEFAULT 0,
|
|
125081
|
+
currency TEXT NOT NULL DEFAULT 'USD',
|
|
125082
|
+
license TEXT,
|
|
125083
|
+
rejection_reason TEXT,
|
|
125084
|
+
submitted_at TIMESTAMP,
|
|
125085
|
+
approved_at TIMESTAMP,
|
|
125086
|
+
approved_by TEXT,
|
|
125087
|
+
created_at TIMESTAMP DEFAULT NOW() NOT NULL,
|
|
125088
|
+
updated_at TIMESTAMP DEFAULT NOW() NOT NULL
|
|
125089
|
+
)`,
|
|
125090
|
+
`CREATE TABLE IF NOT EXISTS template_releases (
|
|
125091
|
+
id SERIAL PRIMARY KEY,
|
|
125092
|
+
template_id INTEGER NOT NULL,
|
|
125093
|
+
version TEXT NOT NULL,
|
|
125094
|
+
bundle_hash TEXT NOT NULL,
|
|
125095
|
+
bundle_storage_key TEXT NOT NULL,
|
|
125096
|
+
source_manifest_json TEXT NOT NULL DEFAULT '{}',
|
|
125097
|
+
preview_app_id INTEGER,
|
|
125098
|
+
preview_frontend_url TEXT,
|
|
125099
|
+
project_kind TEXT NOT NULL DEFAULT 'full_stack',
|
|
125100
|
+
frontend_framework TEXT NOT NULL DEFAULT 'unknown',
|
|
125101
|
+
package_manager TEXT NOT NULL DEFAULT 'unknown',
|
|
125102
|
+
frontend_root TEXT,
|
|
125103
|
+
backend_root TEXT,
|
|
125104
|
+
build_workdir TEXT,
|
|
125105
|
+
build_command TEXT,
|
|
125106
|
+
static_output_dir TEXT,
|
|
125107
|
+
code_size_bytes BIGINT NOT NULL DEFAULT 0,
|
|
125108
|
+
status TEXT NOT NULL DEFAULT 'draft',
|
|
125109
|
+
install_status TEXT NOT NULL DEFAULT 'pending',
|
|
125110
|
+
install_error TEXT,
|
|
125111
|
+
audit_status TEXT NOT NULL DEFAULT 'pending',
|
|
125112
|
+
audit_summary_json TEXT NOT NULL DEFAULT '{}',
|
|
125113
|
+
created_by TEXT NOT NULL,
|
|
125114
|
+
created_at TIMESTAMP DEFAULT NOW() NOT NULL,
|
|
125115
|
+
UNIQUE (template_id, version)
|
|
125116
|
+
)`,
|
|
125117
|
+
`CREATE TABLE IF NOT EXISTS template_entitlements (
|
|
125118
|
+
id SERIAL PRIMARY KEY,
|
|
125119
|
+
template_id INTEGER NOT NULL,
|
|
125120
|
+
user_id TEXT NOT NULL,
|
|
125121
|
+
source TEXT NOT NULL,
|
|
125122
|
+
purchase_id INTEGER,
|
|
125123
|
+
scope TEXT NOT NULL DEFAULT 'approved_releases',
|
|
125124
|
+
granted_at TIMESTAMP DEFAULT NOW() NOT NULL,
|
|
125125
|
+
revoked_at TIMESTAMP,
|
|
125126
|
+
UNIQUE (template_id, user_id)
|
|
125127
|
+
)`,
|
|
125128
|
+
`CREATE TABLE IF NOT EXISTS template_purchases (
|
|
125129
|
+
id SERIAL PRIMARY KEY,
|
|
125130
|
+
template_id INTEGER NOT NULL,
|
|
125131
|
+
buyer_user_id TEXT NOT NULL,
|
|
125132
|
+
seller_user_id TEXT NOT NULL,
|
|
125133
|
+
amount_cents INTEGER NOT NULL,
|
|
125134
|
+
currency TEXT NOT NULL,
|
|
125135
|
+
provider TEXT NOT NULL DEFAULT 'stripe',
|
|
125136
|
+
provider_session_id TEXT,
|
|
125137
|
+
provider_payment_id TEXT,
|
|
125138
|
+
provider_event_id TEXT,
|
|
125139
|
+
status TEXT NOT NULL DEFAULT 'pending',
|
|
125140
|
+
created_at TIMESTAMP DEFAULT NOW() NOT NULL,
|
|
125141
|
+
paid_at TIMESTAMP,
|
|
125142
|
+
refunded_at TIMESTAMP
|
|
125143
|
+
)`,
|
|
125144
|
+
`CREATE TABLE IF NOT EXISTS template_events (
|
|
125145
|
+
id SERIAL PRIMARY KEY,
|
|
125146
|
+
template_id INTEGER NOT NULL,
|
|
125147
|
+
release_id INTEGER,
|
|
125148
|
+
user_id TEXT,
|
|
125149
|
+
event_type TEXT NOT NULL,
|
|
125150
|
+
request_fingerprint TEXT,
|
|
125151
|
+
created_at TIMESTAMP DEFAULT NOW() NOT NULL
|
|
125152
|
+
)`,
|
|
125153
|
+
`CREATE TABLE IF NOT EXISTS template_daily_metrics (
|
|
125154
|
+
template_id INTEGER NOT NULL,
|
|
125155
|
+
day TEXT NOT NULL,
|
|
125156
|
+
views INTEGER NOT NULL DEFAULT 0,
|
|
125157
|
+
unique_viewers INTEGER NOT NULL DEFAULT 0,
|
|
125158
|
+
preview_opens INTEGER NOT NULL DEFAULT 0,
|
|
125159
|
+
downloads INTEGER NOT NULL DEFAULT 0,
|
|
125160
|
+
cli_clones INTEGER NOT NULL DEFAULT 0,
|
|
125161
|
+
purchases INTEGER NOT NULL DEFAULT 0,
|
|
125162
|
+
gross_revenue_cents BIGINT NOT NULL DEFAULT 0,
|
|
125163
|
+
refunds INTEGER NOT NULL DEFAULT 0,
|
|
125164
|
+
UNIQUE (template_id, day)
|
|
125165
|
+
)`,
|
|
125166
|
+
`CREATE INDEX IF NOT EXISTS idx_template_listings_owner_status
|
|
125167
|
+
ON template_listings (owner_user_id, status)`,
|
|
125168
|
+
`CREATE INDEX IF NOT EXISTS idx_template_releases_template_status
|
|
125169
|
+
ON template_releases (template_id, status)`,
|
|
125170
|
+
`CREATE INDEX IF NOT EXISTS idx_template_entitlements_user_template
|
|
125171
|
+
ON template_entitlements (user_id, template_id)`,
|
|
125172
|
+
`CREATE INDEX IF NOT EXISTS idx_template_purchases_buyer_status
|
|
125173
|
+
ON template_purchases (buyer_user_id, status)`,
|
|
125174
|
+
`CREATE INDEX IF NOT EXISTS idx_template_events_template_created
|
|
125175
|
+
ON template_events (template_id, created_at)`
|
|
125176
|
+
];
|
|
125177
|
+
async function ensureTemplateMarketplacePlatformSchema(params) {
|
|
125178
|
+
if (!params.isPlatform) return;
|
|
125179
|
+
for (const statement of TEMPLATE_MARKETPLACE_BOOTSTRAP_SQL) {
|
|
125180
|
+
await params.rawSql(statement);
|
|
125181
|
+
}
|
|
125182
|
+
(params.logger ?? console).log("[db] template marketplace tables \u2713");
|
|
125183
|
+
}
|
|
125184
|
+
|
|
125063
125185
|
// ../server/src/server-platform-db-bootstrap.ts
|
|
125064
125186
|
var MARKUP_DEFAULTS = {
|
|
125065
125187
|
free: { serviceMarkup: 1.5, platformMarkup: 3 },
|
|
@@ -125165,7 +125287,10 @@ async function mergeTierDefaults(params) {
|
|
|
125165
125287
|
]);
|
|
125166
125288
|
} catch (error48) {
|
|
125167
125289
|
const message = error48 instanceof Error ? error48.message : String(error48);
|
|
125168
|
-
params.logger.warn(
|
|
125290
|
+
params.logger.warn(
|
|
125291
|
+
`[db] ${params.warningLabel} merge warning for tier=${params.tierId}:`,
|
|
125292
|
+
message.slice(0, 100)
|
|
125293
|
+
);
|
|
125169
125294
|
}
|
|
125170
125295
|
}
|
|
125171
125296
|
async function ensurePlatformSchemaUpgrade(params) {
|
|
@@ -125180,9 +125305,15 @@ async function ensurePlatformSchemaUpgrade(params) {
|
|
|
125180
125305
|
await params.rawSql(`ALTER TABLE apps ADD COLUMN IF NOT EXISTS custom_domain TEXT UNIQUE`);
|
|
125181
125306
|
await params.rawSql(`ALTER TABLE apps ADD COLUMN IF NOT EXISTS custom_domain_status TEXT`);
|
|
125182
125307
|
await params.rawSql(`ALTER TABLE deployments ADD COLUMN IF NOT EXISTS env TEXT DEFAULT 'dev'`);
|
|
125183
|
-
await params.rawSql(
|
|
125184
|
-
|
|
125185
|
-
|
|
125308
|
+
await params.rawSql(
|
|
125309
|
+
`ALTER TABLE usage_snapshots ADD COLUMN IF NOT EXISTS static_bandwidth_bytes BIGINT DEFAULT 0 NOT NULL`
|
|
125310
|
+
);
|
|
125311
|
+
await params.rawSql(
|
|
125312
|
+
`ALTER TABLE usage_snapshots ADD COLUMN IF NOT EXISTS static_requests INTEGER DEFAULT 0 NOT NULL`
|
|
125313
|
+
);
|
|
125314
|
+
await params.rawSql(
|
|
125315
|
+
`ALTER TABLE usage_snapshots ADD COLUMN IF NOT EXISTS static_storage_bytes BIGINT DEFAULT 0 NOT NULL`
|
|
125316
|
+
);
|
|
125186
125317
|
await params.rawSql(`CREATE TABLE IF NOT EXISTS user_credits (
|
|
125187
125318
|
id SERIAL PRIMARY KEY,
|
|
125188
125319
|
user_id TEXT NOT NULL UNIQUE,
|
|
@@ -125208,7 +125339,9 @@ async function ensurePlatformSchemaUpgrade(params) {
|
|
|
125208
125339
|
status TEXT NOT NULL DEFAULT 'enabled',
|
|
125209
125340
|
created_at TIMESTAMP DEFAULT NOW() NOT NULL
|
|
125210
125341
|
)`);
|
|
125211
|
-
await params.rawSql(
|
|
125342
|
+
await params.rawSql(
|
|
125343
|
+
`CREATE INDEX IF NOT EXISTS idx_cron_jobs_poll ON cron_jobs (status, next_run_at) WHERE status = 'enabled'`
|
|
125344
|
+
);
|
|
125212
125345
|
await params.rawSql(`CREATE TABLE IF NOT EXISTS scheduled_jobs (
|
|
125213
125346
|
id TEXT PRIMARY KEY,
|
|
125214
125347
|
app_id INTEGER NOT NULL,
|
|
@@ -125223,7 +125356,9 @@ async function ensurePlatformSchemaUpgrade(params) {
|
|
|
125223
125356
|
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
125224
125357
|
updated_at TIMESTAMPTZ DEFAULT NOW()
|
|
125225
125358
|
)`);
|
|
125226
|
-
await params.rawSql(
|
|
125359
|
+
await params.rawSql(
|
|
125360
|
+
`CREATE INDEX IF NOT EXISTS idx_scheduled_jobs_poll ON scheduled_jobs (status, run_at) WHERE status = 'pending'`
|
|
125361
|
+
);
|
|
125227
125362
|
await params.rawSql(`CREATE TABLE IF NOT EXISTS cron_job_runs (
|
|
125228
125363
|
id SERIAL PRIMARY KEY,
|
|
125229
125364
|
cron_job_id INTEGER NOT NULL,
|
|
@@ -125235,7 +125370,9 @@ async function ensurePlatformSchemaUpgrade(params) {
|
|
|
125235
125370
|
started_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
125236
125371
|
completed_at TIMESTAMPTZ
|
|
125237
125372
|
)`);
|
|
125238
|
-
await params.rawSql(
|
|
125373
|
+
await params.rawSql(
|
|
125374
|
+
`CREATE INDEX IF NOT EXISTS idx_cron_job_runs_lookup ON cron_job_runs (cron_job_id, started_at DESC)`
|
|
125375
|
+
);
|
|
125239
125376
|
await params.rawSql(`CREATE TABLE IF NOT EXISTS pricing_tiers (
|
|
125240
125377
|
id TEXT PRIMARY KEY,
|
|
125241
125378
|
display_name TEXT NOT NULL,
|
|
@@ -125268,7 +125405,9 @@ async function ensurePlatformSchemaUpgrade(params) {
|
|
|
125268
125405
|
created_at TIMESTAMP DEFAULT NOW() NOT NULL,
|
|
125269
125406
|
updated_at TIMESTAMP DEFAULT NOW() NOT NULL
|
|
125270
125407
|
)`);
|
|
125271
|
-
await params.rawSql(
|
|
125408
|
+
await params.rawSql(
|
|
125409
|
+
`ALTER TABLE model_pricing ADD COLUMN IF NOT EXISTS unit_label TEXT NOT NULL DEFAULT ''`
|
|
125410
|
+
);
|
|
125272
125411
|
await params.rawSql(`INSERT INTO model_pricing (model, type, provider, display_name, unit_label, input_credit_per_token, output_credit_per_token, active, sort_order)
|
|
125273
125412
|
VALUES
|
|
125274
125413
|
('gpt-4o', 'chat', 'openai', 'GPT-4o', '1K tok', 25, 100, true, 0),
|
|
@@ -125309,6 +125448,11 @@ async function ensurePlatformSchemaUpgrade(params) {
|
|
|
125309
125448
|
logger: logger2
|
|
125310
125449
|
});
|
|
125311
125450
|
}
|
|
125451
|
+
await ensureTemplateMarketplacePlatformSchema({
|
|
125452
|
+
rawSql: params.rawSql,
|
|
125453
|
+
isPlatform: params.isPlatform,
|
|
125454
|
+
logger: logger2
|
|
125455
|
+
});
|
|
125312
125456
|
logger2.log("[db] schema upgrade \u2713");
|
|
125313
125457
|
} catch (error48) {
|
|
125314
125458
|
logger2.warn("[db] schema upgrade warning:", error48 instanceof Error ? error48.message : String(error48));
|