@debugbundle/cli 1.5.1 → 1.5.2
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/main.cjs +348 -112
- package/package.json +1 -1
package/dist/main.cjs
CHANGED
|
@@ -15350,6 +15350,29 @@ var ImprovementSettingsUpdateSchema = external_exports.object({
|
|
|
15350
15350
|
message: "At least one improvement settings field must be provided."
|
|
15351
15351
|
});
|
|
15352
15352
|
|
|
15353
|
+
// ../../packages/shared-types/src/project-color-tags.ts
|
|
15354
|
+
var PROJECT_COLOR_TAG_VALUES = [
|
|
15355
|
+
"red",
|
|
15356
|
+
"orange",
|
|
15357
|
+
"amber",
|
|
15358
|
+
"yellow",
|
|
15359
|
+
"lime",
|
|
15360
|
+
"green",
|
|
15361
|
+
"emerald",
|
|
15362
|
+
"teal",
|
|
15363
|
+
"cyan",
|
|
15364
|
+
"sky",
|
|
15365
|
+
"blue",
|
|
15366
|
+
"indigo",
|
|
15367
|
+
"violet",
|
|
15368
|
+
"purple",
|
|
15369
|
+
"fuchsia",
|
|
15370
|
+
"pink",
|
|
15371
|
+
"rose",
|
|
15372
|
+
"slate"
|
|
15373
|
+
];
|
|
15374
|
+
var ProjectColorTagSchema = external_exports.enum(PROJECT_COLOR_TAG_VALUES);
|
|
15375
|
+
|
|
15353
15376
|
// ../../packages/shared-types/src/index.ts
|
|
15354
15377
|
function createUuidV4() {
|
|
15355
15378
|
const cryptoSource = globalThis.crypto;
|
|
@@ -16838,6 +16861,20 @@ var import_promises3 = require("node:fs/promises");
|
|
|
16838
16861
|
var import_node_path4 = require("node:path");
|
|
16839
16862
|
|
|
16840
16863
|
// ../../packages/retrieval-client/src/index.ts
|
|
16864
|
+
var ProjectColorTagResponseSchema = external_exports.unknown().transform((value, context) => {
|
|
16865
|
+
if (value === void 0 || value === null) {
|
|
16866
|
+
return null;
|
|
16867
|
+
}
|
|
16868
|
+
const parsed = ProjectColorTagSchema.safeParse(value);
|
|
16869
|
+
if (!parsed.success) {
|
|
16870
|
+
context.addIssue({
|
|
16871
|
+
code: external_exports.ZodIssueCode.custom,
|
|
16872
|
+
message: "Invalid project color tag"
|
|
16873
|
+
});
|
|
16874
|
+
return external_exports.NEVER;
|
|
16875
|
+
}
|
|
16876
|
+
return parsed.data;
|
|
16877
|
+
});
|
|
16841
16878
|
var IncidentReasonSchema = external_exports.object({
|
|
16842
16879
|
kind: external_exports.enum(["backend_exception", "frontend_exception", "request_failure", "error_log"]),
|
|
16843
16880
|
description: external_exports.string(),
|
|
@@ -16849,6 +16886,7 @@ var IncidentSchema = external_exports.object({
|
|
|
16849
16886
|
incident_id: external_exports.string(),
|
|
16850
16887
|
project_id: external_exports.string(),
|
|
16851
16888
|
project_name: external_exports.string(),
|
|
16889
|
+
project_color_tag: ProjectColorTagResponseSchema,
|
|
16852
16890
|
service_id: external_exports.string().nullable(),
|
|
16853
16891
|
service_name: external_exports.string().nullable(),
|
|
16854
16892
|
latest_deployment_id: external_exports.string().nullable(),
|
|
@@ -16871,6 +16909,7 @@ var ImprovementSchema = external_exports.object({
|
|
|
16871
16909
|
improvement_id: external_exports.string(),
|
|
16872
16910
|
project_id: external_exports.string(),
|
|
16873
16911
|
project_name: external_exports.string(),
|
|
16912
|
+
project_color_tag: ProjectColorTagResponseSchema,
|
|
16874
16913
|
project_slug: external_exports.string(),
|
|
16875
16914
|
service_id: external_exports.string().nullable(),
|
|
16876
16915
|
service_name: external_exports.string(),
|
|
@@ -17056,6 +17095,24 @@ async function expectServices(responsePromise) {
|
|
|
17056
17095
|
const parsed = await expectParsed(responsePromise, ServicesResponseSchema);
|
|
17057
17096
|
return parsed.services;
|
|
17058
17097
|
}
|
|
17098
|
+
function normalizeIncidentRecord(incident) {
|
|
17099
|
+
return {
|
|
17100
|
+
...incident,
|
|
17101
|
+
project_color_tag: incident.project_color_tag
|
|
17102
|
+
};
|
|
17103
|
+
}
|
|
17104
|
+
function normalizeIncidentContext(context) {
|
|
17105
|
+
return {
|
|
17106
|
+
...context,
|
|
17107
|
+
incident: normalizeIncidentRecord(context.incident)
|
|
17108
|
+
};
|
|
17109
|
+
}
|
|
17110
|
+
function normalizeImprovementRecord(improvement) {
|
|
17111
|
+
return {
|
|
17112
|
+
...improvement,
|
|
17113
|
+
project_color_tag: improvement.project_color_tag
|
|
17114
|
+
};
|
|
17115
|
+
}
|
|
17059
17116
|
function createRetrievalApi(client) {
|
|
17060
17117
|
return {
|
|
17061
17118
|
async listIncidents(input2) {
|
|
@@ -17094,7 +17151,7 @@ function createRetrievalApi(client) {
|
|
|
17094
17151
|
IncidentsResponseSchema
|
|
17095
17152
|
);
|
|
17096
17153
|
return {
|
|
17097
|
-
incidents: parsed.incidents,
|
|
17154
|
+
incidents: parsed.incidents.map(normalizeIncidentRecord),
|
|
17098
17155
|
next_cursor: parsed.next_cursor ?? null
|
|
17099
17156
|
};
|
|
17100
17157
|
},
|
|
@@ -17107,10 +17164,10 @@ function createRetrievalApi(client) {
|
|
|
17107
17164
|
}),
|
|
17108
17165
|
IncidentResponseSchema
|
|
17109
17166
|
);
|
|
17110
|
-
return parsed.incident;
|
|
17167
|
+
return normalizeIncidentRecord(parsed.incident);
|
|
17111
17168
|
},
|
|
17112
17169
|
async getIncidentContext(input2) {
|
|
17113
|
-
|
|
17170
|
+
const parsed = await expectParsed(
|
|
17114
17171
|
client.request({
|
|
17115
17172
|
method: "GET",
|
|
17116
17173
|
path: `/v1/incidents/${input2.incidentId}/context`,
|
|
@@ -17118,6 +17175,7 @@ function createRetrievalApi(client) {
|
|
|
17118
17175
|
}),
|
|
17119
17176
|
IncidentContextSchema
|
|
17120
17177
|
);
|
|
17178
|
+
return normalizeIncidentContext(parsed);
|
|
17121
17179
|
},
|
|
17122
17180
|
async resolveIncident(input2) {
|
|
17123
17181
|
const parsed = await expectParsed(
|
|
@@ -17128,7 +17186,7 @@ function createRetrievalApi(client) {
|
|
|
17128
17186
|
}),
|
|
17129
17187
|
IncidentResponseSchema
|
|
17130
17188
|
);
|
|
17131
|
-
return parsed.incident;
|
|
17189
|
+
return normalizeIncidentRecord(parsed.incident);
|
|
17132
17190
|
},
|
|
17133
17191
|
async resolveIncidents(input2) {
|
|
17134
17192
|
const parsed = await expectParsed(
|
|
@@ -17142,7 +17200,7 @@ function createRetrievalApi(client) {
|
|
|
17142
17200
|
}),
|
|
17143
17201
|
BulkIncidentResponseSchema
|
|
17144
17202
|
);
|
|
17145
|
-
return parsed.incidents;
|
|
17203
|
+
return parsed.incidents.map(normalizeIncidentRecord);
|
|
17146
17204
|
},
|
|
17147
17205
|
async reopenIncident(input2) {
|
|
17148
17206
|
const parsed = await expectParsed(
|
|
@@ -17153,7 +17211,7 @@ function createRetrievalApi(client) {
|
|
|
17153
17211
|
}),
|
|
17154
17212
|
IncidentResponseSchema
|
|
17155
17213
|
);
|
|
17156
|
-
return parsed.incident;
|
|
17214
|
+
return normalizeIncidentRecord(parsed.incident);
|
|
17157
17215
|
},
|
|
17158
17216
|
async reopenIncidents(input2) {
|
|
17159
17217
|
const parsed = await expectParsed(
|
|
@@ -17167,7 +17225,7 @@ function createRetrievalApi(client) {
|
|
|
17167
17225
|
}),
|
|
17168
17226
|
BulkIncidentResponseSchema
|
|
17169
17227
|
);
|
|
17170
|
-
return parsed.incidents;
|
|
17228
|
+
return parsed.incidents.map(normalizeIncidentRecord);
|
|
17171
17229
|
},
|
|
17172
17230
|
async getBundle(input2) {
|
|
17173
17231
|
const bundle = await expectParsed(
|
|
@@ -17264,7 +17322,7 @@ function createRetrievalApi(client) {
|
|
|
17264
17322
|
ImprovementsResponseSchema
|
|
17265
17323
|
);
|
|
17266
17324
|
return {
|
|
17267
|
-
improvements: parsed.improvements,
|
|
17325
|
+
improvements: parsed.improvements.map(normalizeImprovementRecord),
|
|
17268
17326
|
next_cursor: parsed.next_cursor ?? null
|
|
17269
17327
|
};
|
|
17270
17328
|
},
|
|
@@ -17277,7 +17335,7 @@ function createRetrievalApi(client) {
|
|
|
17277
17335
|
}),
|
|
17278
17336
|
ImprovementResponseSchema
|
|
17279
17337
|
);
|
|
17280
|
-
return parsed.improvement;
|
|
17338
|
+
return normalizeImprovementRecord(parsed.improvement);
|
|
17281
17339
|
},
|
|
17282
17340
|
async resolveImprovement(input2) {
|
|
17283
17341
|
const parsed = await expectParsed(
|
|
@@ -17288,7 +17346,7 @@ function createRetrievalApi(client) {
|
|
|
17288
17346
|
}),
|
|
17289
17347
|
ImprovementResponseSchema
|
|
17290
17348
|
);
|
|
17291
|
-
return parsed.improvement;
|
|
17349
|
+
return normalizeImprovementRecord(parsed.improvement);
|
|
17292
17350
|
},
|
|
17293
17351
|
async reopenImprovement(input2) {
|
|
17294
17352
|
const parsed = await expectParsed(
|
|
@@ -17299,7 +17357,7 @@ function createRetrievalApi(client) {
|
|
|
17299
17357
|
}),
|
|
17300
17358
|
ImprovementResponseSchema
|
|
17301
17359
|
);
|
|
17302
|
-
return parsed.improvement;
|
|
17360
|
+
return normalizeImprovementRecord(parsed.improvement);
|
|
17303
17361
|
},
|
|
17304
17362
|
async snoozeImprovement(input2) {
|
|
17305
17363
|
const parsed = await expectParsed(
|
|
@@ -17311,7 +17369,7 @@ function createRetrievalApi(client) {
|
|
|
17311
17369
|
}),
|
|
17312
17370
|
ImprovementResponseSchema
|
|
17313
17371
|
);
|
|
17314
|
-
return parsed.improvement;
|
|
17372
|
+
return normalizeImprovementRecord(parsed.improvement);
|
|
17315
17373
|
},
|
|
17316
17374
|
async getImprovementBundle(input2) {
|
|
17317
17375
|
return await expectParsed(
|
|
@@ -18349,6 +18407,136 @@ var AVAILABILITY_CHECK_BOOTSTRAP_STATEMENTS = [
|
|
|
18349
18407
|
`
|
|
18350
18408
|
];
|
|
18351
18409
|
|
|
18410
|
+
// ../../packages/storage/src/storage-bootstrap-account-analytics-statements.ts
|
|
18411
|
+
var STORAGE_BOOTSTRAP_ACCOUNT_ANALYTICS_STATEMENTS = [
|
|
18412
|
+
`
|
|
18413
|
+
CREATE TABLE account_analytics_accounts (
|
|
18414
|
+
analytics_account_id uuid PRIMARY KEY,
|
|
18415
|
+
organization_id uuid UNIQUE,
|
|
18416
|
+
organization_id_hash text NOT NULL UNIQUE,
|
|
18417
|
+
created_at timestamptz NOT NULL,
|
|
18418
|
+
first_seen_at timestamptz NOT NULL,
|
|
18419
|
+
metrics_collection_started_at timestamptz NOT NULL,
|
|
18420
|
+
backfilled_from_retained_rows_at timestamptz,
|
|
18421
|
+
deleted_at timestamptz,
|
|
18422
|
+
initial_plan text,
|
|
18423
|
+
latest_known_plan text,
|
|
18424
|
+
latest_capacity_units integer,
|
|
18425
|
+
account_deleted boolean NOT NULL DEFAULT false,
|
|
18426
|
+
metrics_schema_version integer NOT NULL DEFAULT 1,
|
|
18427
|
+
updated_at timestamptz NOT NULL DEFAULT now()
|
|
18428
|
+
)
|
|
18429
|
+
`,
|
|
18430
|
+
`
|
|
18431
|
+
CREATE TABLE account_metric_periods (
|
|
18432
|
+
analytics_account_id uuid NOT NULL REFERENCES account_analytics_accounts(analytics_account_id),
|
|
18433
|
+
period_grain text NOT NULL CHECK (period_grain IN ('day', 'month', 'year', 'lifetime')),
|
|
18434
|
+
period_starts_at timestamptz NOT NULL,
|
|
18435
|
+
metric_key text NOT NULL,
|
|
18436
|
+
metric_value bigint NOT NULL DEFAULT 0,
|
|
18437
|
+
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
18438
|
+
PRIMARY KEY (analytics_account_id, period_grain, period_starts_at, metric_key)
|
|
18439
|
+
)
|
|
18440
|
+
`,
|
|
18441
|
+
`
|
|
18442
|
+
CREATE INDEX account_metric_periods_grain_period_metric_idx
|
|
18443
|
+
ON account_metric_periods (period_grain, period_starts_at, metric_key)
|
|
18444
|
+
`,
|
|
18445
|
+
`
|
|
18446
|
+
CREATE INDEX account_metric_periods_account_grain_period_idx
|
|
18447
|
+
ON account_metric_periods (analytics_account_id, period_grain, period_starts_at)
|
|
18448
|
+
`,
|
|
18449
|
+
`
|
|
18450
|
+
CREATE TABLE account_metric_events (
|
|
18451
|
+
dedupe_key_hash text PRIMARY KEY,
|
|
18452
|
+
analytics_account_id uuid NOT NULL REFERENCES account_analytics_accounts(analytics_account_id),
|
|
18453
|
+
metric_source text NOT NULL,
|
|
18454
|
+
occurred_at timestamptz NOT NULL,
|
|
18455
|
+
recorded_at timestamptz NOT NULL DEFAULT now(),
|
|
18456
|
+
metric_deltas jsonb NOT NULL
|
|
18457
|
+
)
|
|
18458
|
+
`,
|
|
18459
|
+
`
|
|
18460
|
+
CREATE TABLE ingestion_rejection_diagnostic_periods (
|
|
18461
|
+
analytics_account_id uuid NOT NULL REFERENCES account_analytics_accounts(analytics_account_id),
|
|
18462
|
+
period_starts_at timestamptz NOT NULL,
|
|
18463
|
+
rejection_reason text NOT NULL,
|
|
18464
|
+
project_id_text text NOT NULL DEFAULT '',
|
|
18465
|
+
service_name text NOT NULL DEFAULT '',
|
|
18466
|
+
service_environment text NOT NULL DEFAULT '',
|
|
18467
|
+
service_runtime text NOT NULL DEFAULT '',
|
|
18468
|
+
sdk_name text NOT NULL DEFAULT '',
|
|
18469
|
+
sdk_version text NOT NULL DEFAULT '',
|
|
18470
|
+
event_type text NOT NULL DEFAULT '',
|
|
18471
|
+
validation_code text NOT NULL DEFAULT '',
|
|
18472
|
+
validation_path text NOT NULL DEFAULT '',
|
|
18473
|
+
occurrences bigint NOT NULL DEFAULT 0,
|
|
18474
|
+
first_seen_at timestamptz NOT NULL,
|
|
18475
|
+
last_seen_at timestamptz NOT NULL,
|
|
18476
|
+
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
18477
|
+
PRIMARY KEY (
|
|
18478
|
+
analytics_account_id,
|
|
18479
|
+
period_starts_at,
|
|
18480
|
+
rejection_reason,
|
|
18481
|
+
project_id_text,
|
|
18482
|
+
service_name,
|
|
18483
|
+
service_environment,
|
|
18484
|
+
service_runtime,
|
|
18485
|
+
sdk_name,
|
|
18486
|
+
sdk_version,
|
|
18487
|
+
event_type,
|
|
18488
|
+
validation_code,
|
|
18489
|
+
validation_path
|
|
18490
|
+
)
|
|
18491
|
+
)
|
|
18492
|
+
`,
|
|
18493
|
+
`
|
|
18494
|
+
CREATE INDEX ingestion_rejection_diagnostic_periods_reason_period_idx
|
|
18495
|
+
ON ingestion_rejection_diagnostic_periods (rejection_reason, period_starts_at, last_seen_at DESC)
|
|
18496
|
+
`,
|
|
18497
|
+
`
|
|
18498
|
+
CREATE TABLE account_payment_retention_records (
|
|
18499
|
+
id uuid PRIMARY KEY,
|
|
18500
|
+
analytics_account_id uuid NOT NULL REFERENCES account_analytics_accounts(analytics_account_id),
|
|
18501
|
+
organization_id_hash text NOT NULL,
|
|
18502
|
+
provider text NOT NULL,
|
|
18503
|
+
plan text,
|
|
18504
|
+
billing_state text,
|
|
18505
|
+
stripe_customer_id text,
|
|
18506
|
+
stripe_subscription_id text,
|
|
18507
|
+
billing_period_starts_at timestamptz,
|
|
18508
|
+
billing_period_ends_at timestamptz,
|
|
18509
|
+
additional_capacity_units integer,
|
|
18510
|
+
last_billing_event_id text,
|
|
18511
|
+
account_deleted_at timestamptz NOT NULL,
|
|
18512
|
+
recorded_at timestamptz NOT NULL DEFAULT now(),
|
|
18513
|
+
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
18514
|
+
UNIQUE (analytics_account_id, provider)
|
|
18515
|
+
)
|
|
18516
|
+
`,
|
|
18517
|
+
`
|
|
18518
|
+
CREATE INDEX account_payment_retention_records_provider_idx
|
|
18519
|
+
ON account_payment_retention_records (provider, account_deleted_at DESC)
|
|
18520
|
+
`,
|
|
18521
|
+
`
|
|
18522
|
+
CREATE TABLE account_payment_provider_events (
|
|
18523
|
+
provider_event_key text PRIMARY KEY,
|
|
18524
|
+
analytics_account_id uuid NOT NULL REFERENCES account_analytics_accounts(analytics_account_id),
|
|
18525
|
+
organization_id_hash text NOT NULL,
|
|
18526
|
+
provider text NOT NULL,
|
|
18527
|
+
provider_event_id text NOT NULL,
|
|
18528
|
+
provider_event_type text NOT NULL,
|
|
18529
|
+
processed_at timestamptz NOT NULL,
|
|
18530
|
+
account_deleted_at timestamptz NOT NULL,
|
|
18531
|
+
recorded_at timestamptz NOT NULL DEFAULT now()
|
|
18532
|
+
)
|
|
18533
|
+
`,
|
|
18534
|
+
`
|
|
18535
|
+
CREATE UNIQUE INDEX account_payment_provider_events_provider_event_key
|
|
18536
|
+
ON account_payment_provider_events (provider, provider_event_id)
|
|
18537
|
+
`
|
|
18538
|
+
];
|
|
18539
|
+
|
|
18352
18540
|
// ../../packages/storage/src/storage-bootstrap-statements.ts
|
|
18353
18541
|
var STORAGE_BOOTSTRAP_STATEMENTS = [
|
|
18354
18542
|
`
|
|
@@ -18412,6 +18600,8 @@ var STORAGE_BOOTSTRAP_STATEMENTS = [
|
|
|
18412
18600
|
name text NOT NULL,
|
|
18413
18601
|
slug text NOT NULL,
|
|
18414
18602
|
environment_default text NOT NULL DEFAULT 'production',
|
|
18603
|
+
color_tag text
|
|
18604
|
+
CHECK (color_tag IN ('red', 'orange', 'amber', 'yellow', 'lime', 'green', 'emerald', 'teal', 'cyan', 'sky', 'blue', 'indigo', 'violet', 'purple', 'fuchsia', 'pink', 'rose', 'slate') OR color_tag IS NULL),
|
|
18415
18605
|
automated_improvement_bundles_enabled boolean NOT NULL DEFAULT true,
|
|
18416
18606
|
improvement_bundle_sensitivity text NOT NULL DEFAULT 'high_confidence'
|
|
18417
18607
|
CHECK (improvement_bundle_sensitivity IN ('high_confidence', 'balanced', 'verbose')),
|
|
@@ -19288,94 +19478,7 @@ var STORAGE_BOOTSTRAP_STATEMENTS = [
|
|
|
19288
19478
|
PRIMARY KEY (project_id, period_starts_at)
|
|
19289
19479
|
)
|
|
19290
19480
|
`,
|
|
19291
|
-
|
|
19292
|
-
CREATE TABLE account_analytics_accounts (
|
|
19293
|
-
analytics_account_id uuid PRIMARY KEY,
|
|
19294
|
-
organization_id uuid UNIQUE,
|
|
19295
|
-
organization_id_hash text NOT NULL UNIQUE,
|
|
19296
|
-
created_at timestamptz NOT NULL,
|
|
19297
|
-
first_seen_at timestamptz NOT NULL,
|
|
19298
|
-
metrics_collection_started_at timestamptz NOT NULL,
|
|
19299
|
-
backfilled_from_retained_rows_at timestamptz,
|
|
19300
|
-
deleted_at timestamptz,
|
|
19301
|
-
initial_plan text,
|
|
19302
|
-
latest_known_plan text,
|
|
19303
|
-
latest_capacity_units integer,
|
|
19304
|
-
account_deleted boolean NOT NULL DEFAULT false,
|
|
19305
|
-
metrics_schema_version integer NOT NULL DEFAULT 1,
|
|
19306
|
-
updated_at timestamptz NOT NULL DEFAULT now()
|
|
19307
|
-
)
|
|
19308
|
-
`,
|
|
19309
|
-
`
|
|
19310
|
-
CREATE TABLE account_metric_periods (
|
|
19311
|
-
analytics_account_id uuid NOT NULL REFERENCES account_analytics_accounts(analytics_account_id),
|
|
19312
|
-
period_grain text NOT NULL CHECK (period_grain IN ('day', 'month', 'year', 'lifetime')),
|
|
19313
|
-
period_starts_at timestamptz NOT NULL,
|
|
19314
|
-
metric_key text NOT NULL,
|
|
19315
|
-
metric_value bigint NOT NULL DEFAULT 0,
|
|
19316
|
-
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
19317
|
-
PRIMARY KEY (analytics_account_id, period_grain, period_starts_at, metric_key)
|
|
19318
|
-
)
|
|
19319
|
-
`,
|
|
19320
|
-
`
|
|
19321
|
-
CREATE INDEX account_metric_periods_grain_period_metric_idx
|
|
19322
|
-
ON account_metric_periods (period_grain, period_starts_at, metric_key)
|
|
19323
|
-
`,
|
|
19324
|
-
`
|
|
19325
|
-
CREATE INDEX account_metric_periods_account_grain_period_idx
|
|
19326
|
-
ON account_metric_periods (analytics_account_id, period_grain, period_starts_at)
|
|
19327
|
-
`,
|
|
19328
|
-
`
|
|
19329
|
-
CREATE TABLE account_metric_events (
|
|
19330
|
-
dedupe_key_hash text PRIMARY KEY,
|
|
19331
|
-
analytics_account_id uuid NOT NULL REFERENCES account_analytics_accounts(analytics_account_id),
|
|
19332
|
-
metric_source text NOT NULL,
|
|
19333
|
-
occurred_at timestamptz NOT NULL,
|
|
19334
|
-
recorded_at timestamptz NOT NULL DEFAULT now(),
|
|
19335
|
-
metric_deltas jsonb NOT NULL
|
|
19336
|
-
)
|
|
19337
|
-
`,
|
|
19338
|
-
`
|
|
19339
|
-
CREATE TABLE account_payment_retention_records (
|
|
19340
|
-
id uuid PRIMARY KEY,
|
|
19341
|
-
analytics_account_id uuid NOT NULL REFERENCES account_analytics_accounts(analytics_account_id),
|
|
19342
|
-
organization_id_hash text NOT NULL,
|
|
19343
|
-
provider text NOT NULL,
|
|
19344
|
-
plan text,
|
|
19345
|
-
billing_state text,
|
|
19346
|
-
stripe_customer_id text,
|
|
19347
|
-
stripe_subscription_id text,
|
|
19348
|
-
billing_period_starts_at timestamptz,
|
|
19349
|
-
billing_period_ends_at timestamptz,
|
|
19350
|
-
additional_capacity_units integer,
|
|
19351
|
-
last_billing_event_id text,
|
|
19352
|
-
account_deleted_at timestamptz NOT NULL,
|
|
19353
|
-
recorded_at timestamptz NOT NULL DEFAULT now(),
|
|
19354
|
-
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
19355
|
-
UNIQUE (analytics_account_id, provider)
|
|
19356
|
-
)
|
|
19357
|
-
`,
|
|
19358
|
-
`
|
|
19359
|
-
CREATE INDEX account_payment_retention_records_provider_idx
|
|
19360
|
-
ON account_payment_retention_records (provider, account_deleted_at DESC)
|
|
19361
|
-
`,
|
|
19362
|
-
`
|
|
19363
|
-
CREATE TABLE account_payment_provider_events (
|
|
19364
|
-
provider_event_key text PRIMARY KEY,
|
|
19365
|
-
analytics_account_id uuid NOT NULL REFERENCES account_analytics_accounts(analytics_account_id),
|
|
19366
|
-
organization_id_hash text NOT NULL,
|
|
19367
|
-
provider text NOT NULL,
|
|
19368
|
-
provider_event_id text NOT NULL,
|
|
19369
|
-
provider_event_type text NOT NULL,
|
|
19370
|
-
processed_at timestamptz NOT NULL,
|
|
19371
|
-
account_deleted_at timestamptz NOT NULL,
|
|
19372
|
-
recorded_at timestamptz NOT NULL DEFAULT now()
|
|
19373
|
-
)
|
|
19374
|
-
`,
|
|
19375
|
-
`
|
|
19376
|
-
CREATE UNIQUE INDEX account_payment_provider_events_provider_event_key
|
|
19377
|
-
ON account_payment_provider_events (provider, provider_event_id)
|
|
19378
|
-
`,
|
|
19481
|
+
...STORAGE_BOOTSTRAP_ACCOUNT_ANALYTICS_STATEMENTS,
|
|
19379
19482
|
`
|
|
19380
19483
|
CREATE TABLE operational_email_deliveries (
|
|
19381
19484
|
id uuid PRIMARY KEY,
|
|
@@ -20550,6 +20653,70 @@ var STORAGE_SCHEMA_MIGRATIONS = [
|
|
|
20550
20653
|
AND expires_at <= now()
|
|
20551
20654
|
`
|
|
20552
20655
|
]
|
|
20656
|
+
}),
|
|
20657
|
+
defineStorageSchemaMigration({
|
|
20658
|
+
id: "202606140001_add_ingestion_rejection_diagnostics",
|
|
20659
|
+
description: "Track sanitized ingestion rejection diagnostics for operator breakdowns.",
|
|
20660
|
+
statements: [
|
|
20661
|
+
`
|
|
20662
|
+
CREATE TABLE IF NOT EXISTS ingestion_rejection_diagnostic_periods (
|
|
20663
|
+
analytics_account_id uuid NOT NULL REFERENCES account_analytics_accounts(analytics_account_id),
|
|
20664
|
+
period_starts_at timestamptz NOT NULL,
|
|
20665
|
+
rejection_reason text NOT NULL,
|
|
20666
|
+
project_id_text text NOT NULL DEFAULT '',
|
|
20667
|
+
service_name text NOT NULL DEFAULT '',
|
|
20668
|
+
service_environment text NOT NULL DEFAULT '',
|
|
20669
|
+
service_runtime text NOT NULL DEFAULT '',
|
|
20670
|
+
sdk_name text NOT NULL DEFAULT '',
|
|
20671
|
+
sdk_version text NOT NULL DEFAULT '',
|
|
20672
|
+
event_type text NOT NULL DEFAULT '',
|
|
20673
|
+
validation_code text NOT NULL DEFAULT '',
|
|
20674
|
+
validation_path text NOT NULL DEFAULT '',
|
|
20675
|
+
occurrences bigint NOT NULL DEFAULT 0,
|
|
20676
|
+
first_seen_at timestamptz NOT NULL,
|
|
20677
|
+
last_seen_at timestamptz NOT NULL,
|
|
20678
|
+
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
20679
|
+
PRIMARY KEY (
|
|
20680
|
+
analytics_account_id,
|
|
20681
|
+
period_starts_at,
|
|
20682
|
+
rejection_reason,
|
|
20683
|
+
project_id_text,
|
|
20684
|
+
service_name,
|
|
20685
|
+
service_environment,
|
|
20686
|
+
service_runtime,
|
|
20687
|
+
sdk_name,
|
|
20688
|
+
sdk_version,
|
|
20689
|
+
event_type,
|
|
20690
|
+
validation_code,
|
|
20691
|
+
validation_path
|
|
20692
|
+
)
|
|
20693
|
+
)
|
|
20694
|
+
`,
|
|
20695
|
+
`
|
|
20696
|
+
CREATE INDEX IF NOT EXISTS ingestion_rejection_diagnostic_periods_reason_period_idx
|
|
20697
|
+
ON ingestion_rejection_diagnostic_periods (
|
|
20698
|
+
rejection_reason,
|
|
20699
|
+
period_starts_at,
|
|
20700
|
+
last_seen_at DESC
|
|
20701
|
+
)
|
|
20702
|
+
`
|
|
20703
|
+
]
|
|
20704
|
+
}),
|
|
20705
|
+
defineStorageSchemaMigration({
|
|
20706
|
+
id: "202606170001_add_project_color_tags",
|
|
20707
|
+
description: "Add optional project color tags for project metadata and retrieval surfaces.",
|
|
20708
|
+
statements: [
|
|
20709
|
+
"ALTER TABLE projects ADD COLUMN IF NOT EXISTS color_tag text",
|
|
20710
|
+
"ALTER TABLE projects DROP CONSTRAINT IF EXISTS projects_color_tag_check",
|
|
20711
|
+
`
|
|
20712
|
+
ALTER TABLE projects
|
|
20713
|
+
ADD CONSTRAINT projects_color_tag_check
|
|
20714
|
+
CHECK (
|
|
20715
|
+
color_tag IN ('red', 'orange', 'amber', 'yellow', 'lime', 'green', 'emerald', 'teal', 'cyan', 'sky', 'blue', 'indigo', 'violet', 'purple', 'fuchsia', 'pink', 'rose', 'slate')
|
|
20716
|
+
OR color_tag IS NULL
|
|
20717
|
+
)
|
|
20718
|
+
`
|
|
20719
|
+
]
|
|
20553
20720
|
})
|
|
20554
20721
|
];
|
|
20555
20722
|
|
|
@@ -20557,7 +20724,7 @@ var STORAGE_SCHEMA_MIGRATIONS = [
|
|
|
20557
20724
|
var STORAGE_SCHEMA_MIGRATIONS2 = [
|
|
20558
20725
|
...STORAGE_SCHEMA_MIGRATIONS,
|
|
20559
20726
|
...AVAILABILITY_CHECK_STORAGE_SCHEMA_MIGRATIONS
|
|
20560
|
-
];
|
|
20727
|
+
].sort((left, right) => left.id.localeCompare(right.id));
|
|
20561
20728
|
|
|
20562
20729
|
// src/local-retrieval-store.ts
|
|
20563
20730
|
var CONNECTION_FILE_PATH2 = ".debugbundle/local/connection.json";
|
|
@@ -21302,6 +21469,20 @@ var import_promises8 = require("node:fs/promises");
|
|
|
21302
21469
|
var import_node_path9 = require("node:path");
|
|
21303
21470
|
|
|
21304
21471
|
// ../../packages/project-management-client/src/index.ts
|
|
21472
|
+
var ProjectColorTagResponseSchema2 = external_exports.unknown().transform((value, context) => {
|
|
21473
|
+
if (value === void 0 || value === null) {
|
|
21474
|
+
return null;
|
|
21475
|
+
}
|
|
21476
|
+
const parsed = ProjectColorTagSchema.safeParse(value);
|
|
21477
|
+
if (!parsed.success) {
|
|
21478
|
+
context.addIssue({
|
|
21479
|
+
code: external_exports.ZodIssueCode.custom,
|
|
21480
|
+
message: "Invalid project color tag"
|
|
21481
|
+
});
|
|
21482
|
+
return external_exports.NEVER;
|
|
21483
|
+
}
|
|
21484
|
+
return parsed.data;
|
|
21485
|
+
});
|
|
21305
21486
|
var ProjectMetricsSchema = external_exports.object({
|
|
21306
21487
|
open_incidents: external_exports.number().int().nonnegative().default(0),
|
|
21307
21488
|
regressed_incidents: external_exports.number().int().nonnegative().default(0),
|
|
@@ -21324,6 +21505,7 @@ var ProjectRecordSchema = external_exports.object({
|
|
|
21324
21505
|
name: external_exports.string(),
|
|
21325
21506
|
slug: external_exports.string(),
|
|
21326
21507
|
environment_default: external_exports.string(),
|
|
21508
|
+
color_tag: ProjectColorTagResponseSchema2,
|
|
21327
21509
|
organization_plan: external_exports.enum(["free", "solo", "team"]),
|
|
21328
21510
|
metrics: ProjectMetricsSchema,
|
|
21329
21511
|
created_at: external_exports.string(),
|
|
@@ -21347,6 +21529,7 @@ var DeletedProjectRecordSchema = external_exports.object({
|
|
|
21347
21529
|
name: external_exports.string(),
|
|
21348
21530
|
slug: external_exports.string(),
|
|
21349
21531
|
environment_default: external_exports.string(),
|
|
21532
|
+
color_tag: ProjectColorTagResponseSchema2,
|
|
21350
21533
|
organization_plan: external_exports.enum(["free", "solo", "team"]),
|
|
21351
21534
|
created_at: external_exports.string(),
|
|
21352
21535
|
updated_at: external_exports.string()
|
|
@@ -21373,6 +21556,18 @@ function parseApiError2(status, body) {
|
|
|
21373
21556
|
}
|
|
21374
21557
|
throw new ProjectManagementApiError(status, parsed.data.error);
|
|
21375
21558
|
}
|
|
21559
|
+
function normalizeProjectRecord(project) {
|
|
21560
|
+
return {
|
|
21561
|
+
...project,
|
|
21562
|
+
color_tag: project.color_tag
|
|
21563
|
+
};
|
|
21564
|
+
}
|
|
21565
|
+
function normalizeDeletedProjectRecord(project) {
|
|
21566
|
+
return {
|
|
21567
|
+
...project,
|
|
21568
|
+
color_tag: project.color_tag
|
|
21569
|
+
};
|
|
21570
|
+
}
|
|
21376
21571
|
async function expectProjects(responsePromise) {
|
|
21377
21572
|
const response = await responsePromise;
|
|
21378
21573
|
if (response.status < 200 || response.status >= 300) {
|
|
@@ -21382,7 +21577,7 @@ async function expectProjects(responsePromise) {
|
|
|
21382
21577
|
if (!parsed.success) {
|
|
21383
21578
|
throw new ProjectManagementApiError(response.status, "invalid_response_shape");
|
|
21384
21579
|
}
|
|
21385
|
-
return parsed.data.projects;
|
|
21580
|
+
return parsed.data.projects.map(normalizeProjectRecord);
|
|
21386
21581
|
}
|
|
21387
21582
|
async function expectProject(responsePromise) {
|
|
21388
21583
|
const response = await responsePromise;
|
|
@@ -21393,7 +21588,7 @@ async function expectProject(responsePromise) {
|
|
|
21393
21588
|
if (!parsed.success) {
|
|
21394
21589
|
throw new ProjectManagementApiError(response.status, "invalid_response_shape");
|
|
21395
21590
|
}
|
|
21396
|
-
return parsed.data.project;
|
|
21591
|
+
return normalizeProjectRecord(parsed.data.project);
|
|
21397
21592
|
}
|
|
21398
21593
|
async function expectDeletedProject(responsePromise) {
|
|
21399
21594
|
const response = await responsePromise;
|
|
@@ -21404,7 +21599,7 @@ async function expectDeletedProject(responsePromise) {
|
|
|
21404
21599
|
if (!parsed.success) {
|
|
21405
21600
|
throw new ProjectManagementApiError(response.status, "invalid_response_shape");
|
|
21406
21601
|
}
|
|
21407
|
-
return parsed.data.project;
|
|
21602
|
+
return normalizeDeletedProjectRecord(parsed.data.project);
|
|
21408
21603
|
}
|
|
21409
21604
|
function createProjectManagementApi(client) {
|
|
21410
21605
|
return {
|
|
@@ -21427,7 +21622,8 @@ function createProjectManagementApi(client) {
|
|
|
21427
21622
|
body: {
|
|
21428
21623
|
name: input2.name,
|
|
21429
21624
|
slug: input2.slug,
|
|
21430
|
-
...input2.environmentDefault === void 0 ? {} : { environment_default: input2.environmentDefault }
|
|
21625
|
+
...input2.environmentDefault === void 0 ? {} : { environment_default: input2.environmentDefault },
|
|
21626
|
+
...input2.colorTag === void 0 ? {} : { color_tag: input2.colorTag }
|
|
21431
21627
|
}
|
|
21432
21628
|
})
|
|
21433
21629
|
);
|
|
@@ -21443,6 +21639,9 @@ function createProjectManagementApi(client) {
|
|
|
21443
21639
|
if (input2.environmentDefault !== void 0) {
|
|
21444
21640
|
body["environment_default"] = input2.environmentDefault;
|
|
21445
21641
|
}
|
|
21642
|
+
if (input2.colorTag !== void 0) {
|
|
21643
|
+
body["color_tag"] = input2.colorTag;
|
|
21644
|
+
}
|
|
21446
21645
|
return expectProject(
|
|
21447
21646
|
client.request({
|
|
21448
21647
|
method: "PATCH",
|
|
@@ -30241,8 +30440,8 @@ var CLI_USAGE_LINES = [
|
|
|
30241
30440
|
" debugbundle github deliveries --project-id <id> [--status <status>] [--limit <n>] [--auth-file <path>] [--json]",
|
|
30242
30441
|
" debugbundle github deliveries retry <delivery-id> --project-id <id> [--auth-file <path>] [--json]",
|
|
30243
30442
|
" debugbundle project list [--limit <n>] [--auth-file <path>] [--json]",
|
|
30244
|
-
" debugbundle project create --name <name> --slug <slug> [--environment-default <env>] [--auth-file <path>] [--json]",
|
|
30245
|
-
" debugbundle project update <project-id> [--name <name>] [--slug <slug>] [--environment-default <env>] [--auth-file <path>] [--json]",
|
|
30443
|
+
" debugbundle project create --name <name> --slug <slug> [--environment-default <env>] [--color-tag <tag>] [--auth-file <path>] [--json]",
|
|
30444
|
+
" debugbundle project update <project-id> [--name <name>] [--slug <slug>] [--environment-default <env>] [--color-tag <tag> | --clear-color-tag] [--auth-file <path>] [--json]",
|
|
30246
30445
|
" debugbundle project delete <project-id> [--auth-file <path>] [--json]",
|
|
30247
30446
|
" debugbundle token project list <project-id> [--limit <n>] [--auth-file <path>] [--json]",
|
|
30248
30447
|
" debugbundle token project create <project-id> --label <label> [--allowed-origin <origin> ...] [--auth-file <path>] [--json]",
|
|
@@ -30606,7 +30805,7 @@ function parseArgv(argv) {
|
|
|
30606
30805
|
positionals.push(token);
|
|
30607
30806
|
continue;
|
|
30608
30807
|
}
|
|
30609
|
-
if (token === "--fix" || token === "--json" || token === "--check-relay" || token === "--privacy" || token === "--help" || token === "--version" || token === "--non-interactive" || token === "--local" || token === "--cloud" || token === "--events" || token === "--bundles" || token === "--all" || token === "--trigger-5xx" || token === "--expect-app-event" || token === "--github" || token === "--github-cli" || token === "--github-device") {
|
|
30808
|
+
if (token === "--fix" || token === "--json" || token === "--check-relay" || token === "--privacy" || token === "--help" || token === "--version" || token === "--non-interactive" || token === "--local" || token === "--cloud" || token === "--events" || token === "--bundles" || token === "--all" || token === "--trigger-5xx" || token === "--expect-app-event" || token === "--github" || token === "--github-cli" || token === "--github-device" || token === "--clear-color-tag") {
|
|
30610
30809
|
options.set(token.slice(2), true);
|
|
30611
30810
|
continue;
|
|
30612
30811
|
}
|
|
@@ -32494,6 +32693,9 @@ async function createProjectCommand(input2, api) {
|
|
|
32494
32693
|
if (input2.environmentDefault !== void 0) {
|
|
32495
32694
|
requestInput.environmentDefault = input2.environmentDefault;
|
|
32496
32695
|
}
|
|
32696
|
+
if (input2.colorTag !== void 0) {
|
|
32697
|
+
requestInput.colorTag = input2.colorTag;
|
|
32698
|
+
}
|
|
32497
32699
|
const project = await api.createProject(requestInput);
|
|
32498
32700
|
return {
|
|
32499
32701
|
exitCode: 0,
|
|
@@ -32518,6 +32720,9 @@ async function updateProjectCommand(input2, api) {
|
|
|
32518
32720
|
if (input2.environmentDefault !== void 0) {
|
|
32519
32721
|
requestInput.environmentDefault = input2.environmentDefault;
|
|
32520
32722
|
}
|
|
32723
|
+
if (input2.colorTag !== void 0) {
|
|
32724
|
+
requestInput.colorTag = input2.colorTag;
|
|
32725
|
+
}
|
|
32521
32726
|
const project = await api.updateProject(requestInput);
|
|
32522
32727
|
return {
|
|
32523
32728
|
exitCode: 0,
|
|
@@ -32574,6 +32779,9 @@ async function createProjectWithAuthCommand(input2, dependencies) {
|
|
|
32574
32779
|
if (input2.environmentDefault !== void 0) {
|
|
32575
32780
|
commandInput.environmentDefault = input2.environmentDefault;
|
|
32576
32781
|
}
|
|
32782
|
+
if (input2.colorTag !== void 0) {
|
|
32783
|
+
commandInput.colorTag = input2.colorTag;
|
|
32784
|
+
}
|
|
32577
32785
|
if (input2.json !== void 0) {
|
|
32578
32786
|
commandInput.json = input2.json;
|
|
32579
32787
|
}
|
|
@@ -32601,6 +32809,9 @@ async function updateProjectWithAuthCommand(input2, dependencies) {
|
|
|
32601
32809
|
if (input2.environmentDefault !== void 0) {
|
|
32602
32810
|
commandInput.environmentDefault = input2.environmentDefault;
|
|
32603
32811
|
}
|
|
32812
|
+
if (input2.colorTag !== void 0) {
|
|
32813
|
+
commandInput.colorTag = input2.colorTag;
|
|
32814
|
+
}
|
|
32604
32815
|
if (input2.json !== void 0) {
|
|
32605
32816
|
commandInput.json = input2.json;
|
|
32606
32817
|
}
|
|
@@ -32903,6 +33114,16 @@ async function revokeMemberTokenWithAuthCommand(input2, dependencies) {
|
|
|
32903
33114
|
}
|
|
32904
33115
|
|
|
32905
33116
|
// src/management-billing-project-token-command-handlers.ts
|
|
33117
|
+
function readProjectColorTagOption(parsedArgv) {
|
|
33118
|
+
const colorTag = readStringOption(parsedArgv, "color-tag");
|
|
33119
|
+
if (colorTag === void 0) {
|
|
33120
|
+
return void 0;
|
|
33121
|
+
}
|
|
33122
|
+
if (PROJECT_COLOR_TAG_VALUES.includes(colorTag)) {
|
|
33123
|
+
return colorTag;
|
|
33124
|
+
}
|
|
33125
|
+
throw new CliInputError("Invalid value for --color-tag.");
|
|
33126
|
+
}
|
|
32906
33127
|
async function handleBillingCommand(parsedArgv, dependencies) {
|
|
32907
33128
|
const action = requirePositional(parsedArgv, 1, "action");
|
|
32908
33129
|
if (action === "get") {
|
|
@@ -33056,7 +33277,7 @@ async function handleProjectCommand(parsedArgv, dependencies) {
|
|
|
33056
33277
|
return await (dependencies.listProjectsCommand ?? listProjectsWithAuthCommand)(input2);
|
|
33057
33278
|
}
|
|
33058
33279
|
if (action === "create") {
|
|
33059
|
-
expectNoUnknownOptions(parsedArgv, ["auth-file", "json", "name", "slug", "environment-default"]);
|
|
33280
|
+
expectNoUnknownOptions(parsedArgv, ["auth-file", "json", "name", "slug", "environment-default", "color-tag"]);
|
|
33060
33281
|
ensureNoExtraPositionals(parsedArgv, 2);
|
|
33061
33282
|
const name = readStringOption(parsedArgv, "name");
|
|
33062
33283
|
if (name === void 0) {
|
|
@@ -33071,10 +33292,14 @@ async function handleProjectCommand(parsedArgv, dependencies) {
|
|
|
33071
33292
|
if (environmentDefault !== void 0) {
|
|
33072
33293
|
input2.environmentDefault = environmentDefault;
|
|
33073
33294
|
}
|
|
33295
|
+
const colorTag = readProjectColorTagOption(parsedArgv);
|
|
33296
|
+
if (colorTag !== void 0) {
|
|
33297
|
+
input2.colorTag = colorTag;
|
|
33298
|
+
}
|
|
33074
33299
|
return await (dependencies.createProjectCommand ?? createProjectWithAuthCommand)(input2);
|
|
33075
33300
|
}
|
|
33076
33301
|
if (action === "update") {
|
|
33077
|
-
expectNoUnknownOptions(parsedArgv, ["auth-file", "json", "name", "slug", "environment-default"]);
|
|
33302
|
+
expectNoUnknownOptions(parsedArgv, ["auth-file", "json", "name", "slug", "environment-default", "color-tag", "clear-color-tag"]);
|
|
33078
33303
|
ensureNoExtraPositionals(parsedArgv, 3);
|
|
33079
33304
|
const input2 = appendCommonAuthOptions(parsedArgv, {
|
|
33080
33305
|
projectId: requirePositional(parsedArgv, 2, "project-id")
|
|
@@ -33091,7 +33316,18 @@ async function handleProjectCommand(parsedArgv, dependencies) {
|
|
|
33091
33316
|
if (environmentDefault !== void 0) {
|
|
33092
33317
|
input2.environmentDefault = environmentDefault;
|
|
33093
33318
|
}
|
|
33094
|
-
if (
|
|
33319
|
+
if (readBooleanOption(parsedArgv, "clear-color-tag") === true) {
|
|
33320
|
+
if (readStringOption(parsedArgv, "color-tag") !== void 0) {
|
|
33321
|
+
throw new CliInputError("Use either --color-tag or --clear-color-tag.");
|
|
33322
|
+
}
|
|
33323
|
+
input2.colorTag = null;
|
|
33324
|
+
} else {
|
|
33325
|
+
const colorTag = readProjectColorTagOption(parsedArgv);
|
|
33326
|
+
if (colorTag !== void 0) {
|
|
33327
|
+
input2.colorTag = colorTag;
|
|
33328
|
+
}
|
|
33329
|
+
}
|
|
33330
|
+
if (input2.name === void 0 && input2.slug === void 0 && input2.environmentDefault === void 0 && input2.colorTag === void 0) {
|
|
33095
33331
|
throw new CliInputError("At least one project field must be provided.");
|
|
33096
33332
|
}
|
|
33097
33333
|
return await (dependencies.updateProjectCommand ?? updateProjectWithAuthCommand)(input2);
|
|
@@ -36674,7 +36910,7 @@ async function handleCaptureRuleCommand2(parsedArgv, dependencies) {
|
|
|
36674
36910
|
// package.json
|
|
36675
36911
|
var package_default = {
|
|
36676
36912
|
name: "@debugbundle/cli",
|
|
36677
|
-
version: "1.5.
|
|
36913
|
+
version: "1.5.2",
|
|
36678
36914
|
private: false,
|
|
36679
36915
|
description: "Command-line interface for DebugBundle",
|
|
36680
36916
|
license: "AGPL-3.0-only",
|