@proofhound/db 0.1.6

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 (112) hide show
  1. package/LICENSE +190 -0
  2. package/dist/clean-test-residue.d.ts +2 -0
  3. package/dist/clean-test-residue.d.ts.map +1 -0
  4. package/dist/clean-test-residue.js +59 -0
  5. package/dist/clean-test-residue.js.map +1 -0
  6. package/dist/client.d.ts +5 -0
  7. package/dist/client.d.ts.map +1 -0
  8. package/dist/client.js +87 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/ensure-e2e-database.d.ts +2 -0
  11. package/dist/ensure-e2e-database.d.ts.map +1 -0
  12. package/dist/ensure-e2e-database.js +87 -0
  13. package/dist/ensure-e2e-database.js.map +1 -0
  14. package/dist/fixtures/dev/connectors.d.ts +72 -0
  15. package/dist/fixtures/dev/connectors.d.ts.map +1 -0
  16. package/dist/fixtures/dev/connectors.js +90 -0
  17. package/dist/fixtures/dev/connectors.js.map +1 -0
  18. package/dist/fixtures/dev/experiments.d.ts +48 -0
  19. package/dist/fixtures/dev/experiments.d.ts.map +1 -0
  20. package/dist/fixtures/dev/experiments.js +1168 -0
  21. package/dist/fixtures/dev/experiments.js.map +1 -0
  22. package/dist/fixtures/dev/models.d.ts +20 -0
  23. package/dist/fixtures/dev/models.d.ts.map +1 -0
  24. package/dist/fixtures/dev/models.js +60 -0
  25. package/dist/fixtures/dev/models.js.map +1 -0
  26. package/dist/fixtures/dev/optimizations.d.ts +62 -0
  27. package/dist/fixtures/dev/optimizations.d.ts.map +1 -0
  28. package/dist/fixtures/dev/optimizations.js +124 -0
  29. package/dist/fixtures/dev/optimizations.js.map +1 -0
  30. package/dist/fixtures/dev/prompts.d.ts +31 -0
  31. package/dist/fixtures/dev/prompts.d.ts.map +1 -0
  32. package/dist/fixtures/dev/prompts.js +115 -0
  33. package/dist/fixtures/dev/prompts.js.map +1 -0
  34. package/dist/fixtures/dev/tokens.d.ts +10 -0
  35. package/dist/fixtures/dev/tokens.d.ts.map +1 -0
  36. package/dist/fixtures/dev/tokens.js +28 -0
  37. package/dist/fixtures/dev/tokens.js.map +1 -0
  38. package/dist/index.d.ts +3 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +44 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/migrate.d.ts +2 -0
  43. package/dist/migrate.d.ts.map +1 -0
  44. package/dist/migrate.js +34 -0
  45. package/dist/migrate.js.map +1 -0
  46. package/dist/migrations/0000_woozy_thunderbolt.sql +688 -0
  47. package/dist/migrations/0001_webhook_token_scope.sql +28 -0
  48. package/dist/migrations/0002_tokens_table_unify_scope.sql +50 -0
  49. package/dist/migrations/0003_models_auto_concurrency.sql +4 -0
  50. package/dist/migrations/0004_webhook_token_attribution.sql +4 -0
  51. package/dist/migrations/0005_same_thor_girl.sql +34 -0
  52. package/dist/reset.d.ts +2 -0
  53. package/dist/reset.d.ts.map +1 -0
  54. package/dist/reset.js +78 -0
  55. package/dist/reset.js.map +1 -0
  56. package/dist/schema/index.d.ts +5 -0
  57. package/dist/schema/index.d.ts.map +1 -0
  58. package/dist/schema/index.js +23 -0
  59. package/dist/schema/index.js.map +1 -0
  60. package/dist/schema/ph_assets/index.d.ts +2012 -0
  61. package/dist/schema/ph_assets/index.d.ts.map +1 -0
  62. package/dist/schema/ph_assets/index.js +272 -0
  63. package/dist/schema/ph_assets/index.js.map +1 -0
  64. package/dist/schema/ph_core/index.d.ts +424 -0
  65. package/dist/schema/ph_core/index.d.ts.map +1 -0
  66. package/dist/schema/ph_core/index.js +69 -0
  67. package/dist/schema/ph_core/index.js.map +1 -0
  68. package/dist/schema/ph_releases/_schema.d.ts +2 -0
  69. package/dist/schema/ph_releases/_schema.d.ts.map +1 -0
  70. package/dist/schema/ph_releases/_schema.js +8 -0
  71. package/dist/schema/ph_releases/_schema.js.map +1 -0
  72. package/dist/schema/ph_releases/annotation-tasks.d.ts +263 -0
  73. package/dist/schema/ph_releases/annotation-tasks.d.ts.map +1 -0
  74. package/dist/schema/ph_releases/annotation-tasks.js +38 -0
  75. package/dist/schema/ph_releases/annotation-tasks.js.map +1 -0
  76. package/dist/schema/ph_releases/canary-releases.d.ts +672 -0
  77. package/dist/schema/ph_releases/canary-releases.d.ts.map +1 -0
  78. package/dist/schema/ph_releases/canary-releases.js +91 -0
  79. package/dist/schema/ph_releases/canary-releases.js.map +1 -0
  80. package/dist/schema/ph_releases/index.d.ts +6 -0
  81. package/dist/schema/ph_releases/index.d.ts.map +1 -0
  82. package/dist/schema/ph_releases/index.js +24 -0
  83. package/dist/schema/ph_releases/index.js.map +1 -0
  84. package/dist/schema/ph_releases/production-release-events.d.ts +527 -0
  85. package/dist/schema/ph_releases/production-release-events.d.ts.map +1 -0
  86. package/dist/schema/ph_releases/production-release-events.js +86 -0
  87. package/dist/schema/ph_releases/production-release-events.js.map +1 -0
  88. package/dist/schema/ph_releases/release-lines.d.ts +1442 -0
  89. package/dist/schema/ph_releases/release-lines.d.ts.map +1 -0
  90. package/dist/schema/ph_releases/release-lines.js +203 -0
  91. package/dist/schema/ph_releases/release-lines.js.map +1 -0
  92. package/dist/schema/ph_runs/_schema.d.ts +2 -0
  93. package/dist/schema/ph_runs/_schema.d.ts.map +1 -0
  94. package/dist/schema/ph_runs/_schema.js +6 -0
  95. package/dist/schema/ph_runs/_schema.js.map +1 -0
  96. package/dist/schema/ph_runs/experiments.d.ts +984 -0
  97. package/dist/schema/ph_runs/experiments.d.ts.map +1 -0
  98. package/dist/schema/ph_runs/experiments.js +134 -0
  99. package/dist/schema/ph_runs/experiments.js.map +1 -0
  100. package/dist/schema/ph_runs/index.d.ts +1027 -0
  101. package/dist/schema/ph_runs/index.d.ts.map +1 -0
  102. package/dist/schema/ph_runs/index.js +135 -0
  103. package/dist/schema/ph_runs/index.js.map +1 -0
  104. package/dist/seed-dev.d.ts +2 -0
  105. package/dist/seed-dev.d.ts.map +1 -0
  106. package/dist/seed-dev.js +605 -0
  107. package/dist/seed-dev.js.map +1 -0
  108. package/dist/seed.d.ts +2 -0
  109. package/dist/seed.d.ts.map +1 -0
  110. package/dist/seed.js +13 -0
  111. package/dist/seed.js.map +1 -0
  112. package/package.json +60 -0
@@ -0,0 +1,28 @@
1
+ -- Webhook token migration: switch to scope='webhook' + forward link via connector_id
2
+ -- See docs/specs/06-database-schema.md §3.2 / §4.5
3
+ --
4
+ -- Order:
5
+ -- a) Add the connector_id column to api_tokens
6
+ -- b) Backfill api_tokens.connector_id from connectors.webhook_token_id and upgrade scope to 'webhook'
7
+ -- c) Drop the legacy connectors.webhook_token_id FK + column
8
+ -- d) Upgrade api_tokens' scope CHECK and scope_fields CHECK
9
+ -- e) Add the connector_id FK + partial index
10
+ ALTER TABLE "ph_core"."api_tokens" ADD COLUMN "connector_id" uuid;--> statement-breakpoint
11
+ UPDATE "ph_core"."api_tokens" AS t
12
+ SET scope = 'webhook',
13
+ connector_id = c.id
14
+ FROM "ph_assets"."connectors" AS c
15
+ WHERE c.webhook_token_id = t.id
16
+ AND c.deleted_at IS NULL;--> statement-breakpoint
17
+ ALTER TABLE "ph_assets"."connectors" DROP CONSTRAINT IF EXISTS "connectors_webhook_token_id_api_tokens_id_fk";--> statement-breakpoint
18
+ ALTER TABLE "ph_assets"."connectors" DROP COLUMN "webhook_token_id";--> statement-breakpoint
19
+ ALTER TABLE "ph_core"."api_tokens" DROP CONSTRAINT IF EXISTS "api_tokens_scope_check";--> statement-breakpoint
20
+ ALTER TABLE "ph_core"."api_tokens" ADD CONSTRAINT "api_tokens_scope_check" CHECK ("ph_core"."api_tokens"."scope" IN ('project_api', 'global_mcp', 'webhook'));--> statement-breakpoint
21
+ ALTER TABLE "ph_core"."api_tokens" DROP CONSTRAINT IF EXISTS "api_tokens_scope_fields_check";--> statement-breakpoint
22
+ ALTER TABLE "ph_core"."api_tokens" ADD CONSTRAINT "api_tokens_scope_fields_check" CHECK ((
23
+ ("ph_core"."api_tokens"."scope" = 'project_api' AND "ph_core"."api_tokens"."project_id" IS NOT NULL AND "ph_core"."api_tokens"."connector_id" IS NULL) OR
24
+ ("ph_core"."api_tokens"."scope" = 'global_mcp' AND "ph_core"."api_tokens"."project_id" IS NULL AND "ph_core"."api_tokens"."connector_id" IS NULL) OR
25
+ ("ph_core"."api_tokens"."scope" = 'webhook' AND "ph_core"."api_tokens"."project_id" IS NOT NULL AND "ph_core"."api_tokens"."connector_id" IS NOT NULL)
26
+ ));--> statement-breakpoint
27
+ ALTER TABLE "ph_core"."api_tokens" ADD CONSTRAINT "api_tokens_connector_id_fkey" FOREIGN KEY ("connector_id") REFERENCES "ph_assets"."connectors"("id") ON DELETE CASCADE;--> statement-breakpoint
28
+ CREATE INDEX "idx_api_tokens_connector" ON "ph_core"."api_tokens" USING btree ("connector_id") WHERE "ph_core"."api_tokens"."scope" = 'webhook' AND "ph_core"."api_tokens"."revoked_at" IS NULL;
@@ -0,0 +1,50 @@
1
+ -- 0002 token model refactor: rename api_tokens → tokens, merge project_api + global_mcp into user, drop the global MCP singleton constraint
2
+ -- See docs/specs/06-database-schema.md §3.2 / docs/specs/08-saas-adapter-boundary.md §3.5
3
+ --
4
+ -- Order:
5
+ -- a) drop constraints / indexes tightly bound to the legacy scope (CHECK, uniq_active_global_mcp_token)
6
+ -- b) data backfill: move project_api / global_mcp rows uniformly to scope='user', set project_id to NULL
7
+ -- c) rename the table + rename the indexes / FKs / unique constraints that still exist
8
+ -- d) rebuild CHECK; the new value set = ('user', 'webhook'); user allows any project_id; webhook unchanged
9
+ --
10
+ -- Not handled in this migration:
11
+ -- - scope='webhook' row constraints / FKs inherit the shape built in 0001; this migration only renames them
12
+ -- - column shapes for token_hash UNIQUE / token_encrypted / prefix remain unchanged
13
+
14
+ -- a) Drop the global-MCP singleton constraint tied to the legacy scope
15
+ DROP INDEX IF EXISTS "ph_core"."uniq_active_global_mcp_token";--> statement-breakpoint
16
+
17
+ -- a) Drop CHECK first (before backfill), to avoid new values failing the old constraint
18
+ ALTER TABLE "ph_core"."api_tokens" DROP CONSTRAINT IF EXISTS "api_tokens_scope_fields_check";--> statement-breakpoint
19
+ ALTER TABLE "ph_core"."api_tokens" DROP CONSTRAINT IF EXISTS "api_tokens_scope_check";--> statement-breakpoint
20
+
21
+ -- b) Data backfill: move project_api / global_mcp uniformly to user; user is not bound to project_id
22
+ UPDATE "ph_core"."api_tokens"
23
+ SET scope = 'user',
24
+ project_id = NULL
25
+ WHERE scope IN ('project_api', 'global_mcp');--> statement-breakpoint
26
+
27
+ -- c) rename table
28
+ ALTER TABLE "ph_core"."api_tokens" RENAME TO "tokens";--> statement-breakpoint
29
+
30
+ -- c) Rename indexes (the partial index WHERE clause is preserved unchanged)
31
+ ALTER INDEX "ph_core"."idx_api_tokens_project" RENAME TO "idx_tokens_project";--> statement-breakpoint
32
+ ALTER INDEX "ph_core"."idx_api_tokens_active" RENAME TO "idx_tokens_active";--> statement-breakpoint
33
+ ALTER INDEX "ph_core"."idx_api_tokens_connector" RENAME TO "idx_tokens_connector";--> statement-breakpoint
34
+
35
+ -- c) Rename FK / unique constraints (referring to 0000 / 0001 drizzle auto-naming)
36
+ ALTER TABLE "ph_core"."tokens" RENAME CONSTRAINT "api_tokens_project_id_projects_id_fk" TO "tokens_project_id_projects_id_fk";--> statement-breakpoint
37
+ ALTER TABLE "ph_core"."tokens" RENAME CONSTRAINT "api_tokens_connector_id_fkey" TO "tokens_connector_id_fkey";--> statement-breakpoint
38
+ ALTER TABLE "ph_core"."tokens" RENAME CONSTRAINT "api_tokens_token_hash_unique" TO "tokens_token_hash_unique";--> statement-breakpoint
39
+
40
+ -- d) Rebuild CHECK: scope ∈ {user, webhook}
41
+ ALTER TABLE "ph_core"."tokens" ADD CONSTRAINT "tokens_scope_check"
42
+ CHECK ("ph_core"."tokens"."scope" IN ('user', 'webhook'));--> statement-breakpoint
43
+
44
+ -- d) Rebuild scope_fields CHECK:
45
+ -- - user only enforces connector_id IS NULL; project_id can be anything (OSS defaults to NULL; the SaaS form may attach a project)
46
+ -- - webhook keeps the original constraint (project_id + connector_id required)
47
+ ALTER TABLE "ph_core"."tokens" ADD CONSTRAINT "tokens_scope_fields_check" CHECK ((
48
+ ("ph_core"."tokens"."scope" = 'user' AND "ph_core"."tokens"."connector_id" IS NULL) OR
49
+ ("ph_core"."tokens"."scope" = 'webhook' AND "ph_core"."tokens"."project_id" IS NOT NULL AND "ph_core"."tokens"."connector_id" IS NOT NULL)
50
+ ));
@@ -0,0 +1,4 @@
1
+ -- Add auto_concurrency flag to models: when TRUE (default), concurrency_limit is the ceiling and
2
+ -- effective concurrency is auto-tuned by the limiter; when FALSE, concurrency_limit is the hard limit.
3
+ -- See docs/specs/21-models.md §6.1
4
+ ALTER TABLE "ph_assets"."models" ADD COLUMN "auto_concurrency" boolean DEFAULT true NOT NULL;
@@ -0,0 +1,4 @@
1
+ ALTER TABLE "ph_runs"."run_results" ADD COLUMN "webhook_token_id" uuid;--> statement-breakpoint
2
+ ALTER TABLE "ph_runs"."run_results" ADD CONSTRAINT "run_results_webhook_token_id_tokens_id_fk" FOREIGN KEY ("webhook_token_id") REFERENCES "ph_core"."tokens"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
3
+ CREATE INDEX "idx_run_results_webhook_token" ON "ph_runs"."run_results" USING btree ("webhook_token_id","created_at") WHERE "ph_runs"."run_results"."webhook_token_id" IS NOT NULL;--> statement-breakpoint
4
+ ALTER TABLE "ph_core"."tokens" ADD CONSTRAINT "tokens_name_length_check" CHECK (char_length("ph_core"."tokens"."name") <= 64);
@@ -0,0 +1,34 @@
1
+ CREATE TABLE "ph_assets"."dataset_import_samples" (
2
+ "import_id" uuid NOT NULL,
3
+ "row_index" integer NOT NULL,
4
+ "data" jsonb NOT NULL,
5
+ "external_id" text,
6
+ CONSTRAINT "dataset_import_samples_import_id_row_index_pk" PRIMARY KEY("import_id","row_index")
7
+ );
8
+ --> statement-breakpoint
9
+ CREATE TABLE "ph_assets"."dataset_imports" (
10
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
11
+ "project_id" uuid NOT NULL,
12
+ "dataset_id" uuid,
13
+ "name" text NOT NULL,
14
+ "description" text,
15
+ "field_mappings" jsonb DEFAULT '[]'::jsonb NOT NULL,
16
+ "file_name" text NOT NULL,
17
+ "file_size_bytes" bigint NOT NULL,
18
+ "content_type" text,
19
+ "source_format" text NOT NULL,
20
+ "declared_total_rows" integer,
21
+ "received_rows" integer DEFAULT 0 NOT NULL,
22
+ "status" text DEFAULT 'importing' NOT NULL,
23
+ "created_by" uuid NOT NULL,
24
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
25
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL,
26
+ CONSTRAINT "dataset_imports_source_format_check" CHECK ("ph_assets"."dataset_imports"."source_format" IN ('jsonl', 'csv', 'tsv')),
27
+ CONSTRAINT "dataset_imports_status_check" CHECK ("ph_assets"."dataset_imports"."status" IN ('importing', 'ready'))
28
+ );
29
+ --> statement-breakpoint
30
+ ALTER TABLE "ph_assets"."dataset_import_samples" ADD CONSTRAINT "dataset_import_samples_import_id_dataset_imports_id_fk" FOREIGN KEY ("import_id") REFERENCES "ph_assets"."dataset_imports"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
31
+ ALTER TABLE "ph_assets"."dataset_imports" ADD CONSTRAINT "dataset_imports_project_id_projects_id_fk" FOREIGN KEY ("project_id") REFERENCES "ph_core"."projects"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
32
+ ALTER TABLE "ph_assets"."dataset_imports" ADD CONSTRAINT "dataset_imports_dataset_id_datasets_id_fk" FOREIGN KEY ("dataset_id") REFERENCES "ph_assets"."datasets"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
33
+ CREATE INDEX "idx_dataset_imports_project_status" ON "ph_assets"."dataset_imports" USING btree ("project_id","status");--> statement-breakpoint
34
+ CREATE INDEX "idx_dataset_imports_stale" ON "ph_assets"."dataset_imports" USING btree ("status","updated_at") WHERE "ph_assets"."dataset_imports"."status" = 'importing';
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=reset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../src/reset.ts"],"names":[],"mappings":""}
package/dist/reset.js ADDED
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Local reset: DROP all user schemas in the current database.
5
+ *
6
+ * **Local and staging only — strictly forbidden in production.**
7
+ *
8
+ * Call chain: `pnpm db:reset` = `tsx src/reset.ts && pnpm migrate && pnpm seed`
9
+ * - This script only clears the database; structure rebuild and seed are done by the subsequent commands
10
+ *
11
+ * Safeguards:
12
+ * - By default, DATABASE_URL must point to localhost / 127.0.0.1 / ::1
13
+ * - Remote databases (staging, etc.) must explicitly set ALLOW_DB_RESET=1
14
+ */
15
+ const node_path_1 = require("node:path");
16
+ const drizzle_orm_1 = require("drizzle-orm");
17
+ const client_1 = require("./client");
18
+ const LOCAL_HOSTNAMES = new Set(['localhost', '127.0.0.1', '::1']);
19
+ function writeLine(message = '') {
20
+ process.stdout.write(`${message}\n`);
21
+ }
22
+ function unwrapRows(rawRows) {
23
+ return Array.isArray(rawRows) ? rawRows : (rawRows.rows ?? []);
24
+ }
25
+ function isLocalDatabaseUrl(databaseUrl) {
26
+ try {
27
+ const url = new URL(databaseUrl.trim().replace(/^(['"])(.*)\1$/, '$2'));
28
+ return LOCAL_HOSTNAMES.has(url.hostname);
29
+ }
30
+ catch {
31
+ return false;
32
+ }
33
+ }
34
+ async function main() {
35
+ try {
36
+ process.loadEnvFile((0, node_path_1.resolve)(process.cwd(), '../../.env'));
37
+ }
38
+ catch {
39
+ // CI / other environments that already have env injected
40
+ }
41
+ const databaseUrl = process.env['DATABASE_URL'];
42
+ if (!databaseUrl) {
43
+ console.error('āŒ DATABASE_URL is not configured');
44
+ process.exit(1);
45
+ }
46
+ const local = isLocalDatabaseUrl(databaseUrl);
47
+ const allowReset = process.env['ALLOW_DB_RESET'] === '1';
48
+ if (!local && !allowReset) {
49
+ console.error('āŒ DATABASE_URL points to a remote database; refusing to run reset');
50
+ console.error(' Use localhost for local development; to run against a remote (staging) database, set explicitly:');
51
+ console.error(' ALLOW_DB_RESET=1 pnpm db:reset');
52
+ process.exit(1);
53
+ }
54
+ const db = (0, client_1.createDbClient)(databaseUrl);
55
+ const rawRows = await db.execute((0, drizzle_orm_1.sql) `
56
+ SELECT schema_name
57
+ FROM information_schema.schemata
58
+ WHERE schema_name <> 'information_schema'
59
+ AND schema_name NOT LIKE 'pg_%'
60
+ ORDER BY schema_name
61
+ `);
62
+ const rows = unwrapRows(rawRows);
63
+ writeLine(`šŸ—‘ DROP all user schemas (${rows.length})`);
64
+ for (const { schema_name: schemaName } of rows) {
65
+ await db.execute((0, drizzle_orm_1.sql) `DROP SCHEMA IF EXISTS ${drizzle_orm_1.sql.identifier(schemaName)} CASCADE`);
66
+ writeLine(` āœ“ ${schemaName}`);
67
+ }
68
+ await db.execute((0, drizzle_orm_1.sql) `CREATE SCHEMA IF NOT EXISTS "public"`);
69
+ await db.execute((0, drizzle_orm_1.sql) `GRANT USAGE ON SCHEMA "public" TO PUBLIC`);
70
+ writeLine(' āœ“ public (recreated)');
71
+ writeLine('\nāœ… Reset complete; pnpm migrate + pnpm seed will now rebuild the structure and the default local project');
72
+ process.exit(0);
73
+ }
74
+ main().catch((err) => {
75
+ console.error('āŒ Reset failed:', err);
76
+ process.exit(1);
77
+ });
78
+ //# sourceMappingURL=reset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset.js","sourceRoot":"","sources":["../src/reset.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from './ph_core/index';
2
+ export * from './ph_assets/index';
3
+ export * from './ph_runs/index';
4
+ export * from './ph_releases/index';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAEA,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ // Aggregates Drizzle table exports for each schema namespace
18
+ // Actual table definitions live in the corresponding subdirectory per docs/specs/06-database-schema.md
19
+ __exportStar(require("./ph_core/index"), exports);
20
+ __exportStar(require("./ph_assets/index"), exports);
21
+ __exportStar(require("./ph_runs/index"), exports);
22
+ __exportStar(require("./ph_releases/index"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA6D;AAC7D,uGAAuG;AACvG,kDAAgC;AAChC,oDAAkC;AAClC,kDAAgC;AAChC,sDAAoC"}