@noodleseed/one 0.38.0 → 0.39.0
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.d.ts.map +1 -1
- package/dist/cli.js +3 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/billing-apply-ops.d.ts +2 -0
- package/dist/commands/billing-apply-ops.d.ts.map +1 -0
- package/dist/commands/billing-apply-ops.js +224 -0
- package/dist/commands/billing-apply-ops.js.map +1 -0
- package/dist/commands/billing-migration-files.d.ts +13 -0
- package/dist/commands/billing-migration-files.d.ts.map +1 -0
- package/dist/commands/billing-migration-files.js +84 -0
- package/dist/commands/billing-migration-files.js.map +1 -0
- package/dist/commands/billing-ops.d.ts +3 -0
- package/dist/commands/billing-ops.d.ts.map +1 -0
- package/dist/commands/billing-ops.js +121 -0
- package/dist/commands/billing-ops.js.map +1 -0
- package/dist/commands/catalog-data-resources.d.ts.map +1 -1
- package/dist/commands/catalog-data-resources.js +19 -0
- package/dist/commands/catalog-data-resources.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/widget-scaffold-template.d.ts.map +1 -1
- package/dist/widget-scaffold-template.js +9 -0
- package/dist/widget-scaffold-template.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js +4 -0
- package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +3 -3
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js +28 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js +5 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
- package/node_modules/@noodle-borg/authoring/dist/assistant.d.ts +44 -0
- package/node_modules/@noodle-borg/authoring/dist/assistant.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/assistant.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/index.d.ts +1 -1
- package/node_modules/@noodle-borg/authoring/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/server.js +6 -1
- package/node_modules/@noodle-borg/authoring/dist/server.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts +83 -0
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js +82 -14
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js.map +1 -1
- package/node_modules/@noodle-borg/module-audit/dist/index.d.ts +2 -1
- package/node_modules/@noodle-borg/module-audit/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/module-audit/dist/index.js +1 -1
- package/node_modules/@noodle-borg/module-audit/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/module-audit/dist/postgres-audit.d.ts +12 -3
- package/node_modules/@noodle-borg/module-audit/dist/postgres-audit.d.ts.map +1 -1
- package/node_modules/@noodle-borg/module-audit/dist/postgres-audit.js +30 -20
- package/node_modules/@noodle-borg/module-audit/dist/postgres-audit.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/in-memory-serialization.d.ts +6 -0
- package/node_modules/@noodle-borg/service/dist/billing/in-memory-serialization.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/in-memory-serialization.js +23 -0
- package/node_modules/@noodle-borg/service/dist/billing/in-memory-serialization.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/in-memory.d.ts +32 -0
- package/node_modules/@noodle-borg/service/dist/billing/in-memory.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/in-memory.js +185 -0
- package/node_modules/@noodle-borg/service/dist/billing/in-memory.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/migration-apply.d.ts +98 -0
- package/node_modules/@noodle-borg/service/dist/billing/migration-apply.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/migration-apply.js +194 -0
- package/node_modules/@noodle-borg/service/dist/billing/migration-apply.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/migration-contract.d.ts +79 -0
- package/node_modules/@noodle-borg/service/dist/billing/migration-contract.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/migration-contract.js +86 -0
- package/node_modules/@noodle-borg/service/dist/billing/migration-contract.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/migration.d.ts +13 -0
- package/node_modules/@noodle-borg/service/dist/billing/migration.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/migration.js +246 -0
- package/node_modules/@noodle-borg/service/dist/billing/migration.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/model.d.ts +85 -0
- package/node_modules/@noodle-borg/service/dist/billing/model.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/model.js +134 -0
- package/node_modules/@noodle-borg/service/dist/billing/model.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-migration-support.d.ts +36 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-migration-support.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-migration-support.js +122 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-migration-support.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-migration.d.ts +9 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-migration.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-migration.js +265 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-migration.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-records.d.ts +66 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-records.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-records.js +163 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-records.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.d.ts +4 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.js +211 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres.d.ts +33 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres.js +285 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/store.d.ts +27 -0
- package/node_modules/@noodle-borg/service/dist/billing/store.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/store.js +2 -0
- package/node_modules/@noodle-borg/service/dist/billing/store.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/index.d.ts +4 -0
- package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/index.js +3 -0
- package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/modules/host.js +3 -0
- package/node_modules/@noodle-borg/service/dist/modules/host.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/options.d.ts +17 -5
- package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/billing.d.ts +23 -0
- package/node_modules/@noodle-borg/service/dist/routes/billing.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/billing.js +165 -0
- package/node_modules/@noodle-borg/service/dist/routes/billing.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.d.ts +28 -0
- package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.js +77 -0
- package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +17 -0
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve.js +28 -6
- package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service.js +23 -30
- package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/audit.d.ts +8 -0
- package/node_modules/@noodle-borg/service/dist/store/audit.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/audit.js +15 -0
- package/node_modules/@noodle-borg/service/dist/store/audit.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/control-plane.d.ts +2 -1
- package/node_modules/@noodle-borg/service/dist/store/control-plane.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/control-plane.js +81 -48
- package/node_modules/@noodle-borg/service/dist/store/control-plane.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-apps.d.ts +4 -2
- package/node_modules/@noodle-borg/service/dist/store/postgres-apps.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-apps.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-billing.d.ts +11 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-billing.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-billing.js +17 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-billing.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.d.ts +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.js +18 -6
- package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +4 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-signup.d.ts +14 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-signup.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-signup.js +28 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-signup.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts +2 -2
- package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres.js +9 -5
- package/node_modules/@noodle-borg/service/dist/store/postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/validate.d.ts +4 -0
- package/node_modules/@noodle-borg/service/dist/store/validate.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/validate.js +13 -0
- package/node_modules/@noodle-borg/service/dist/store/validate.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store.d.ts +5 -2
- package/node_modules/@noodle-borg/service/dist/store.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store.js +1 -1
- package/node_modules/@noodle-borg/service/dist/store.js.map +1 -1
- package/node_modules/@noodle-borg/wire-contracts/dist/assistant.d.ts +3 -2
- package/node_modules/@noodle-borg/wire-contracts/dist/assistant.d.ts.map +1 -1
- package/node_modules/@noodle-borg/wire-contracts/dist/assistant.js +3 -2
- package/node_modules/@noodle-borg/wire-contracts/dist/assistant.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAgEA,wBAAsB,GAAG,CACvB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,GAAE,MAAkB,GACvB,OAAO,CAAC,MAAM,CAAC,CAYjB"}
|
package/dist/cli.js
CHANGED
|
@@ -22,6 +22,7 @@ import { runAssistant } from './commands/assistant-ops.js';
|
|
|
22
22
|
import { runAudit } from './commands/audit-ops.js';
|
|
23
23
|
import { runAuth } from './commands/auth-ops.js';
|
|
24
24
|
import { runDev, runSmoke as runLocalSmoke, runLocalTest, runValidate, } from './commands/author-loop.js';
|
|
25
|
+
import { runBilling } from './commands/billing-ops.js';
|
|
25
26
|
import { handleUnknownCommand, interceptCatalogHelp } from './commands/catalog-dispatch.js';
|
|
26
27
|
import { runCommands } from './commands/commands-ops.js';
|
|
27
28
|
import { runConfigValues } from './commands/config-values.js';
|
|
@@ -124,6 +125,8 @@ async function runCommand(command, rest, env, home) {
|
|
|
124
125
|
return runDevtools(rest);
|
|
125
126
|
case 'audit':
|
|
126
127
|
return runAudit(rest, env, home);
|
|
128
|
+
case 'billing':
|
|
129
|
+
return runBilling(rest, env, home);
|
|
127
130
|
case 'logs':
|
|
128
131
|
return runLogs(rest, env, home);
|
|
129
132
|
case 'metrics':
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing-apply-ops.d.ts","sourceRoot":"","sources":["../../src/commands/billing-apply-ops.ts"],"names":[],"mappings":"AA+BA,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CA8GjB"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import { resolveControlPlaneToken, ServiceRequestError, serviceJson } from '../control-plane.js';
|
|
2
|
+
import { confirm, isInteractive } from '../prompts.js';
|
|
3
|
+
import { approvedPreviewFileFailure, mappingFileFailure, planEvidenceFileFailure, readApprovedPreview, readMappingRequest, readPlanEvidence, } from './billing-migration-files.js';
|
|
4
|
+
import { EXIT, printJsonOk } from './output.js';
|
|
5
|
+
import { printCliFailure, serviceFailure } from './shared.js';
|
|
6
|
+
export async function runBillingMigrationApply(rest, env, home) {
|
|
7
|
+
const json = rest.includes('--json');
|
|
8
|
+
const parsed = parseBillingApplyArgs(rest);
|
|
9
|
+
if (!parsed.ok)
|
|
10
|
+
return printCliFailure('billing migration apply', parsed.error, json);
|
|
11
|
+
const args = parsed.args;
|
|
12
|
+
if (!args.yes && (args.json || !isInteractive())) {
|
|
13
|
+
return printCliFailure('billing migration apply', confirmationRequired(args), args.json);
|
|
14
|
+
}
|
|
15
|
+
let mapping;
|
|
16
|
+
try {
|
|
17
|
+
mapping = await readMappingRequest(args.file);
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
return printCliFailure('billing migration apply', mappingFileFailure(args.file, error), args.json);
|
|
21
|
+
}
|
|
22
|
+
let approved;
|
|
23
|
+
try {
|
|
24
|
+
approved = await readApprovedPreview(args.previewFile);
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
return printCliFailure('billing migration apply', approvedPreviewFileFailure(args.previewFile, error), args.json);
|
|
28
|
+
}
|
|
29
|
+
if (!approved.preview.ready) {
|
|
30
|
+
return printCliFailure('billing migration apply', blockedApprovedPreview(args.previewFile, approved.preview.blockers), args.json);
|
|
31
|
+
}
|
|
32
|
+
let legacyPlanEvidence;
|
|
33
|
+
try {
|
|
34
|
+
legacyPlanEvidence = await readPlanEvidence(args.planEvidenceFile);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
return printCliFailure('billing migration apply', planEvidenceFileFailure(args.planEvidenceFile, error), args.json);
|
|
38
|
+
}
|
|
39
|
+
if (!args.yes) {
|
|
40
|
+
const organizations = approved.preview.organizations.length + approved.preview.linkedOrganizations.length;
|
|
41
|
+
const confirmed = await confirm(`Prepare shadow billing data for ${organizations} organizations? This writes billing accounts and links, but does not start enforcement, usage metering, or the 90-day grant clock.`, { initial: false });
|
|
42
|
+
if (!confirmed) {
|
|
43
|
+
console.error('billing migration apply: cancelled');
|
|
44
|
+
return EXIT.USAGE;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const resolved = await resolveControlPlaneToken({
|
|
48
|
+
serviceFlag: args.service,
|
|
49
|
+
authFlag: args.authToken,
|
|
50
|
+
env,
|
|
51
|
+
home,
|
|
52
|
+
});
|
|
53
|
+
if (resolved.token === undefined) {
|
|
54
|
+
return printCliFailure('billing migration apply', missingLogin(), args.json);
|
|
55
|
+
}
|
|
56
|
+
if (normalizeService(approved.service) !== resolved.serviceUrl ||
|
|
57
|
+
normalizeService(legacyPlanEvidence.service) !== resolved.serviceUrl) {
|
|
58
|
+
return printCliFailure('billing migration apply', evidenceServiceMismatch(resolved.serviceUrl), args.json);
|
|
59
|
+
}
|
|
60
|
+
const request = {
|
|
61
|
+
schemaVersion: 1,
|
|
62
|
+
mode: args.mode,
|
|
63
|
+
mappings: mapping.mappings ?? [],
|
|
64
|
+
expectedPreviewChecksum: approved.preview.previewChecksum,
|
|
65
|
+
legacyPlanEvidence,
|
|
66
|
+
idempotencyKey: args.idempotencyKey,
|
|
67
|
+
reason: args.reason,
|
|
68
|
+
confirmed: true,
|
|
69
|
+
};
|
|
70
|
+
try {
|
|
71
|
+
const body = await serviceJson(`${resolved.serviceUrl}/v1/billing-accounts/migrations/legacy/apply`, resolved.token, {
|
|
72
|
+
method: 'POST',
|
|
73
|
+
headers: { 'content-type': 'application/json' },
|
|
74
|
+
body: JSON.stringify(request),
|
|
75
|
+
});
|
|
76
|
+
if (args.json)
|
|
77
|
+
printJsonOk({ service: resolved.serviceUrl, migration: body.data });
|
|
78
|
+
else
|
|
79
|
+
printHumanApply(body.data);
|
|
80
|
+
return EXIT.OK;
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
return printCliFailure('billing migration apply', applyServiceFailure(error, args), args.json);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function printHumanApply(result) {
|
|
87
|
+
console.log(`Billing migration: ${result.replayed ? 'ALREADY PREPARED' : 'PREPARED'}`);
|
|
88
|
+
console.log(`Organizations: ${result.counts.organizations}`);
|
|
89
|
+
console.log(`Billing accounts: ${result.counts.accountsCreated} created, ${result.counts.accountsReused} reused`);
|
|
90
|
+
console.log(`Organization links: ${result.counts.linksCreated} created, ${result.counts.linksPreserved} preserved`);
|
|
91
|
+
console.log(`Migration ID: ${result.migrationId}`);
|
|
92
|
+
if (result.replayed) {
|
|
93
|
+
console.log('The existing shadow preparation was returned; no duplicate writes were made.');
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
console.log('Billing data was written. Enforcement remains unchanged.');
|
|
97
|
+
}
|
|
98
|
+
console.log('Usage metering has not started. No 90-day grant clock has started.');
|
|
99
|
+
}
|
|
100
|
+
function parseBillingApplyArgs(rest) {
|
|
101
|
+
const values = new Map();
|
|
102
|
+
let json = false;
|
|
103
|
+
let yes = false;
|
|
104
|
+
const valueFlags = new Set([
|
|
105
|
+
'--file',
|
|
106
|
+
'--preview-file',
|
|
107
|
+
'--plan-evidence',
|
|
108
|
+
'--mode',
|
|
109
|
+
'--reason',
|
|
110
|
+
'--idempotency-key',
|
|
111
|
+
'--service',
|
|
112
|
+
'--auth-token',
|
|
113
|
+
]);
|
|
114
|
+
for (let index = 0; index < rest.length; index++) {
|
|
115
|
+
const arg = rest[index];
|
|
116
|
+
if (arg === '--json')
|
|
117
|
+
json = true;
|
|
118
|
+
else if (arg === '--yes')
|
|
119
|
+
yes = true;
|
|
120
|
+
else if (arg !== undefined && valueFlags.has(arg)) {
|
|
121
|
+
const value = rest[index + 1];
|
|
122
|
+
if (value === undefined || value.length === 0 || value.startsWith('--')) {
|
|
123
|
+
return { ok: false, error: applyUsage(`a value for ${arg} is required`) };
|
|
124
|
+
}
|
|
125
|
+
if (values.has(arg))
|
|
126
|
+
return { ok: false, error: applyUsage(`${arg} may be supplied once`) };
|
|
127
|
+
values.set(arg, value);
|
|
128
|
+
index++;
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
return { ok: false, error: applyUsage(`unknown argument: ${arg ?? ''}`) };
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
for (const flag of [
|
|
135
|
+
'--file',
|
|
136
|
+
'--preview-file',
|
|
137
|
+
'--plan-evidence',
|
|
138
|
+
'--mode',
|
|
139
|
+
'--reason',
|
|
140
|
+
'--idempotency-key',
|
|
141
|
+
]) {
|
|
142
|
+
if (!values.has(flag))
|
|
143
|
+
return { ok: false, error: applyUsage(`${flag} is required`) };
|
|
144
|
+
}
|
|
145
|
+
if (values.get('--mode') !== 'shadow') {
|
|
146
|
+
return { ok: false, error: applyUsage('--mode must be shadow') };
|
|
147
|
+
}
|
|
148
|
+
return {
|
|
149
|
+
ok: true,
|
|
150
|
+
args: {
|
|
151
|
+
file: values.get('--file'),
|
|
152
|
+
previewFile: values.get('--preview-file'),
|
|
153
|
+
planEvidenceFile: values.get('--plan-evidence'),
|
|
154
|
+
mode: 'shadow',
|
|
155
|
+
reason: values.get('--reason'),
|
|
156
|
+
idempotencyKey: values.get('--idempotency-key'),
|
|
157
|
+
...(values.has('--service') ? { service: values.get('--service') } : {}),
|
|
158
|
+
...(values.has('--auth-token') ? { authToken: values.get('--auth-token') } : {}),
|
|
159
|
+
json,
|
|
160
|
+
yes,
|
|
161
|
+
},
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
function applyUsage(message) {
|
|
165
|
+
return {
|
|
166
|
+
code: 'usage',
|
|
167
|
+
message,
|
|
168
|
+
cause: 'Shadow preparation requires the reviewed mapping, preview, and plan-evidence files.',
|
|
169
|
+
fix: 'Supply every required flag and use only --mode shadow.',
|
|
170
|
+
next: 'noodle billing migration apply --file <mapping.json> --preview-file <ready-preview.json> --plan-evidence <plan-evidence.json> --mode shadow --reason <text> --idempotency-key <key> --yes',
|
|
171
|
+
exitCode: EXIT.USAGE,
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
function confirmationRequired(args) {
|
|
175
|
+
return {
|
|
176
|
+
code: 'confirmation_required',
|
|
177
|
+
message: 'billing migration shadow apply requires confirmation',
|
|
178
|
+
cause: 'The operation writes billing accounts and organization links in shadow mode.',
|
|
179
|
+
fix: 'Review the private evidence, then re-run with --yes.',
|
|
180
|
+
next: `noodle billing migration apply --file ${args.file} --preview-file ${args.previewFile} --plan-evidence ${args.planEvidenceFile} --mode shadow --reason <text> --idempotency-key <key> --yes`,
|
|
181
|
+
exitCode: EXIT.USAGE,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
function blockedApprovedPreview(file, blockers) {
|
|
185
|
+
const codes = blockers.map((blocker) => `${blocker.org}:${blocker.code}`).join(', ');
|
|
186
|
+
return {
|
|
187
|
+
code: 'approved_preview_blocked',
|
|
188
|
+
message: 'The approved billing migration preview is not READY.',
|
|
189
|
+
cause: codes.length > 0 ? codes : 'The saved preview is blocked.',
|
|
190
|
+
fix: 'Resolve every blocker and capture a new READY preview.',
|
|
191
|
+
next: `noodle billing migration preview --file <mapping.json> --json > ${file}`,
|
|
192
|
+
exitCode: EXIT.FAILURE,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
function evidenceServiceMismatch(service) {
|
|
196
|
+
return {
|
|
197
|
+
code: 'evidence_service_mismatch',
|
|
198
|
+
message: 'The private migration evidence targets a different service.',
|
|
199
|
+
cause: `The approved preview and plan evidence must both name ${service}.`,
|
|
200
|
+
fix: 'Re-capture both evidence files from the exact service being migrated.',
|
|
201
|
+
next: `noodle billing migration preview --service ${service} --file <mapping.json> --json`,
|
|
202
|
+
exitCode: EXIT.FAILURE,
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
function applyServiceFailure(error, args) {
|
|
206
|
+
const failure = serviceFailure('billing migration apply', error, `noodle billing migration apply --file ${args.file} --preview-file ${args.previewFile} --plan-evidence ${args.planEvidenceFile} --mode shadow --reason <text> --idempotency-key ${args.idempotencyKey} --yes`);
|
|
207
|
+
if (!(error instanceof ServiceRequestError) || error.code === undefined)
|
|
208
|
+
return failure;
|
|
209
|
+
return { ...failure, code: error.code, message: error.message, cause: error.message };
|
|
210
|
+
}
|
|
211
|
+
function missingLogin() {
|
|
212
|
+
return {
|
|
213
|
+
code: 'auth_required',
|
|
214
|
+
message: 'A control-plane login token is required.',
|
|
215
|
+
cause: 'No control-plane login token is available.',
|
|
216
|
+
fix: 'Sign in or pass an explicit auth token.',
|
|
217
|
+
next: 'noodle login',
|
|
218
|
+
exitCode: EXIT.AUTH,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
function normalizeService(value) {
|
|
222
|
+
return value.replace(/\/+$/, '');
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=billing-apply-ops.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing-apply-ops.js","sourceRoot":"","sources":["../../src/commands/billing-apply-ops.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type LegacyBillingMigrationPreview, type LegacyBillingMigrationRequest, type LegacyBillingPlanEvidence } from '@noodle-borg/service';
|
|
2
|
+
import type { CliFailure } from './shared.js';
|
|
3
|
+
export interface ApprovedLegacyBillingMigrationPreview {
|
|
4
|
+
readonly service: string;
|
|
5
|
+
readonly preview: LegacyBillingMigrationPreview;
|
|
6
|
+
}
|
|
7
|
+
export declare function readMappingRequest(file: string | undefined): Promise<LegacyBillingMigrationRequest>;
|
|
8
|
+
export declare function readApprovedPreview(file: string): Promise<ApprovedLegacyBillingMigrationPreview>;
|
|
9
|
+
export declare function readPlanEvidence(file: string): Promise<LegacyBillingPlanEvidence>;
|
|
10
|
+
export declare function mappingFileFailure(file: string | undefined, error: unknown): CliFailure;
|
|
11
|
+
export declare function approvedPreviewFileFailure(file: string, error: unknown): CliFailure;
|
|
12
|
+
export declare function planEvidenceFileFailure(file: string, error: unknown): CliFailure;
|
|
13
|
+
//# sourceMappingURL=billing-migration-files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing-migration-files.d.ts","sourceRoot":"","sources":["../../src/commands/billing-migration-files.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EAClC,KAAK,yBAAyB,EAI/B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,qCAAqC;IACpD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,6BAA6B,CAAC;CACjD;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB,OAAO,CAAC,6BAA6B,CAAC,CAKxC;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,qCAAqC,CAAC,CAyBhD;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAEvF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,UAAU,CAUvF;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,UAAU,CASnF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,UAAU,CAShF"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import { legacyBillingMigrationPreviewChecksum, parseLegacyBillingMigrationPlanEvidence, parseLegacyBillingMigrationRequest, } from '@noodle-borg/service';
|
|
3
|
+
import { errorMessage } from '../diagnostics.js';
|
|
4
|
+
import { EXIT } from './output.js';
|
|
5
|
+
export async function readMappingRequest(file) {
|
|
6
|
+
if (file === undefined) {
|
|
7
|
+
return parseLegacyBillingMigrationRequest({ schemaVersion: 1, mappings: [] });
|
|
8
|
+
}
|
|
9
|
+
return parseLegacyBillingMigrationRequest(await readJsonFile(file, 'mapping'));
|
|
10
|
+
}
|
|
11
|
+
export async function readApprovedPreview(file) {
|
|
12
|
+
const value = await readJsonFile(file, 'approved preview');
|
|
13
|
+
if (!isRecord(value) || value.ok !== true || !isRecord(value.data)) {
|
|
14
|
+
throw new Error('expected the JSON envelope written by billing migration preview --json');
|
|
15
|
+
}
|
|
16
|
+
const { service, preview } = value.data;
|
|
17
|
+
if (typeof service !== 'string' ||
|
|
18
|
+
!isRecord(preview) ||
|
|
19
|
+
preview.schemaVersion !== 1 ||
|
|
20
|
+
typeof preview.ready !== 'boolean' ||
|
|
21
|
+
!Array.isArray(preview.organizations) ||
|
|
22
|
+
!Array.isArray(preview.linkedOrganizations) ||
|
|
23
|
+
!Array.isArray(preview.fundingSets) ||
|
|
24
|
+
!Array.isArray(preview.blockers) ||
|
|
25
|
+
!isRecord(preview.grantPolicy) ||
|
|
26
|
+
!isSha256(preview.previewChecksum)) {
|
|
27
|
+
throw new Error('approved preview file does not match the billing migration preview schema');
|
|
28
|
+
}
|
|
29
|
+
const approvedPreview = preview;
|
|
30
|
+
if (legacyBillingMigrationPreviewChecksum(approvedPreview) !== approvedPreview.previewChecksum) {
|
|
31
|
+
throw new Error('approved preview checksum does not match its contents');
|
|
32
|
+
}
|
|
33
|
+
return { service, preview: approvedPreview };
|
|
34
|
+
}
|
|
35
|
+
export async function readPlanEvidence(file) {
|
|
36
|
+
return parseLegacyBillingMigrationPlanEvidence(await readJsonFile(file, 'plan evidence'));
|
|
37
|
+
}
|
|
38
|
+
export function mappingFileFailure(file, error) {
|
|
39
|
+
const path = file ?? '<mapping.json>';
|
|
40
|
+
return {
|
|
41
|
+
code: 'invalid_mapping_file',
|
|
42
|
+
message: `Cannot use billing migration mapping file ${path}.`,
|
|
43
|
+
cause: errorMessage(error),
|
|
44
|
+
fix: 'Ensure the file exists, is readable JSON, and matches the billing migration schema.',
|
|
45
|
+
next: `noodle billing migration preview --file ${path}`,
|
|
46
|
+
exitCode: EXIT.FAILURE,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export function approvedPreviewFileFailure(file, error) {
|
|
50
|
+
return {
|
|
51
|
+
code: 'invalid_preview_file',
|
|
52
|
+
message: `Cannot use approved billing migration preview file ${file}.`,
|
|
53
|
+
cause: errorMessage(error),
|
|
54
|
+
fix: 'Save a READY JSON preview from the same service and do not edit it.',
|
|
55
|
+
next: `noodle billing migration preview --file <mapping.json> --json > ${file}`,
|
|
56
|
+
exitCode: EXIT.FAILURE,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export function planEvidenceFileFailure(file, error) {
|
|
60
|
+
return {
|
|
61
|
+
code: 'invalid_plan_evidence_file',
|
|
62
|
+
message: `Cannot use legacy billing plan evidence file ${file}.`,
|
|
63
|
+
cause: errorMessage(error),
|
|
64
|
+
fix: 'Ensure the file is readable JSON and contains a complete default-Free reconciliation.',
|
|
65
|
+
next: 'Re-capture and review the authoritative legacy plan projections.',
|
|
66
|
+
exitCode: EXIT.FAILURE,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
async function readJsonFile(file, label) {
|
|
70
|
+
const text = await readFile(file, 'utf8');
|
|
71
|
+
try {
|
|
72
|
+
return JSON.parse(text);
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
throw new Error(`${label} file is not valid JSON: ${errorMessage(error)}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
function isRecord(value) {
|
|
79
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
80
|
+
}
|
|
81
|
+
function isSha256(value) {
|
|
82
|
+
return typeof value === 'string' && /^[a-f0-9]{64}$/.test(value);
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=billing-migration-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing-migration-files.js","sourceRoot":"","sources":["../../src/commands/billing-migration-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing-ops.d.ts","sourceRoot":"","sources":["../../src/commands/billing-ops.ts"],"names":[],"mappings":"AAiBA,gDAAgD;AAChD,wBAAsB,UAAU,CAC9B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAwDjB"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { resolveControlPlaneToken, serviceJson } from '../control-plane.js';
|
|
2
|
+
import { runBillingMigrationApply } from './billing-apply-ops.js';
|
|
3
|
+
import { mappingFileFailure, readMappingRequest } from './billing-migration-files.js';
|
|
4
|
+
import { EXIT, printJsonOk } from './output.js';
|
|
5
|
+
import { printCliFailure, serviceFailure } from './shared.js';
|
|
6
|
+
/** Operator-only billing migration commands. */
|
|
7
|
+
export async function runBilling(rest, env, home) {
|
|
8
|
+
const json = rest.includes('--json');
|
|
9
|
+
if (rest[0] === 'migration' && rest[1] === 'apply') {
|
|
10
|
+
return runBillingMigrationApply(rest.slice(2), env, home);
|
|
11
|
+
}
|
|
12
|
+
if (rest[0] !== 'migration' || rest[1] !== 'preview') {
|
|
13
|
+
return printCliFailure('billing', billingUsage(), json);
|
|
14
|
+
}
|
|
15
|
+
const parsed = parseBillingArgs(rest.slice(2));
|
|
16
|
+
if (!parsed.ok)
|
|
17
|
+
return printCliFailure('billing migration preview', parsed.error, json);
|
|
18
|
+
const args = parsed.args;
|
|
19
|
+
const resolved = await resolveControlPlaneToken({
|
|
20
|
+
serviceFlag: args.service,
|
|
21
|
+
authFlag: args.authToken,
|
|
22
|
+
env,
|
|
23
|
+
home,
|
|
24
|
+
});
|
|
25
|
+
if (resolved.token === undefined) {
|
|
26
|
+
return printCliFailure('billing migration preview', missingLogin(), args.json);
|
|
27
|
+
}
|
|
28
|
+
let request;
|
|
29
|
+
try {
|
|
30
|
+
request = await readMappingRequest(args.file);
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
return printCliFailure('billing migration preview', mappingFileFailure(args.file, error), args.json);
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
const body = await serviceJson(`${resolved.serviceUrl}/v1/billing-accounts/migrations/legacy/preview`, resolved.token, {
|
|
37
|
+
method: 'POST',
|
|
38
|
+
headers: { 'content-type': 'application/json' },
|
|
39
|
+
body: JSON.stringify(request),
|
|
40
|
+
});
|
|
41
|
+
if (args.json)
|
|
42
|
+
printJsonOk({ service: resolved.serviceUrl, preview: body.data });
|
|
43
|
+
else
|
|
44
|
+
printHumanPreview(body.data, args.file);
|
|
45
|
+
return body.data.ready ? EXIT.OK : EXIT.FAILURE;
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
return printCliFailure('billing migration preview', serviceFailure('billing migration preview', error, 'noodle billing migration preview --file <mapping.json>'), args.json);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function printHumanPreview(preview, file) {
|
|
52
|
+
console.log(`Billing migration preview: ${preview.ready ? 'READY' : 'BLOCKED'}`);
|
|
53
|
+
console.log(`Organizations requiring mapping: ${preview.organizations.length}`);
|
|
54
|
+
console.log(`Already linked: ${preview.linkedOrganizations.length}`);
|
|
55
|
+
console.log(`Funding sets: ${preview.fundingSets.length}`);
|
|
56
|
+
console.log(`Legacy cohort grant policy: ${preview.grantPolicy.durationDays} days when the account footprint exceeds plan capacity`);
|
|
57
|
+
if (preview.blockers.length > 0) {
|
|
58
|
+
console.log('Blockers:');
|
|
59
|
+
for (const blocker of preview.blockers) {
|
|
60
|
+
console.log(` ${blocker.org} [${blocker.code}] ${blocker.message}`);
|
|
61
|
+
}
|
|
62
|
+
console.log(`Next: noodle billing migration preview --file ${file ?? '<mapping.json>'}`);
|
|
63
|
+
}
|
|
64
|
+
console.log('No changes were made.');
|
|
65
|
+
}
|
|
66
|
+
function parseBillingArgs(rest) {
|
|
67
|
+
let file;
|
|
68
|
+
let service;
|
|
69
|
+
let authToken;
|
|
70
|
+
let json = false;
|
|
71
|
+
for (let index = 0; index < rest.length; index++) {
|
|
72
|
+
const arg = rest[index];
|
|
73
|
+
if (arg === '--json')
|
|
74
|
+
json = true;
|
|
75
|
+
else if (arg === '--file' || arg === '--service' || arg === '--auth-token') {
|
|
76
|
+
const value = rest[index + 1];
|
|
77
|
+
if (value === undefined || value.length === 0 || value.startsWith('--')) {
|
|
78
|
+
return { ok: false, error: billingUsage('a flag value is missing') };
|
|
79
|
+
}
|
|
80
|
+
if (arg === '--file')
|
|
81
|
+
file = value;
|
|
82
|
+
else if (arg === '--service')
|
|
83
|
+
service = value;
|
|
84
|
+
else
|
|
85
|
+
authToken = value;
|
|
86
|
+
index++;
|
|
87
|
+
}
|
|
88
|
+
else
|
|
89
|
+
return { ok: false, error: billingUsage(`unknown argument: ${arg ?? ''}`) };
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
ok: true,
|
|
93
|
+
args: {
|
|
94
|
+
...(file !== undefined ? { file } : {}),
|
|
95
|
+
...(service !== undefined ? { service } : {}),
|
|
96
|
+
...(authToken !== undefined ? { authToken } : {}),
|
|
97
|
+
json,
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
function billingUsage(message = 'billing migration requires preview or apply') {
|
|
102
|
+
return {
|
|
103
|
+
code: 'usage',
|
|
104
|
+
message,
|
|
105
|
+
cause: 'The billing command or one of its arguments is invalid.',
|
|
106
|
+
fix: 'Run preview first; use apply only with reviewed private evidence.',
|
|
107
|
+
next: 'noodle billing migration preview [--file <mapping.json>] [--json]',
|
|
108
|
+
exitCode: EXIT.USAGE,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function missingLogin() {
|
|
112
|
+
return {
|
|
113
|
+
code: 'auth_required',
|
|
114
|
+
message: 'A control-plane login token is required.',
|
|
115
|
+
cause: 'No control-plane login token is available.',
|
|
116
|
+
fix: 'Sign in or pass an explicit auth token.',
|
|
117
|
+
next: 'noodle login',
|
|
118
|
+
exitCode: EXIT.AUTH,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=billing-ops.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing-ops.js","sourceRoot":"","sources":["../../src/commands/billing-ops.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog-data-resources.d.ts","sourceRoot":"","sources":["../../src/commands/catalog-data-resources.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,oBAAoB,CAAC;AA2BhE,eAAO,MAAM,iBAAiB,EAAE,SAAS,WAAW,
|
|
1
|
+
{"version":3,"file":"catalog-data-resources.d.ts","sourceRoot":"","sources":["../../src/commands/catalog-data-resources.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,oBAAoB,CAAC;AA2BhE,eAAO,MAAM,iBAAiB,EAAE,SAAS,WAAW,EA4nBnD,CAAC"}
|
|
@@ -21,6 +21,25 @@ const WATCH_FLAGS = [
|
|
|
21
21
|
},
|
|
22
22
|
];
|
|
23
23
|
export const CATALOG_RESOURCES = [
|
|
24
|
+
{
|
|
25
|
+
name: 'billing',
|
|
26
|
+
section: 'operate',
|
|
27
|
+
helpRank: 15,
|
|
28
|
+
summary: 'Super-admin preview and explicitly confirmed shadow preparation of the legacy billing-account migration.',
|
|
29
|
+
usage: 'migration preview [--file <mapping.json>] [--json]\nnoodle billing migration apply --file <mapping.json> --preview-file <ready-preview.json> --plan-evidence <plan-evidence.json> --mode shadow --reason <text> --idempotency-key <key> [--yes] [--json]',
|
|
30
|
+
flags: [
|
|
31
|
+
{ name: 'file', type: 'string', value: '<mapping.json>' },
|
|
32
|
+
{ name: 'preview-file', type: 'string', value: '<ready-preview.json>' },
|
|
33
|
+
{ name: 'plan-evidence', type: 'string', value: '<plan-evidence.json>' },
|
|
34
|
+
{ name: 'mode', type: 'string', value: 'shadow' },
|
|
35
|
+
{ name: 'reason', type: 'string', value: '<text>' },
|
|
36
|
+
{ name: 'idempotency-key', type: 'string', value: '<key>' },
|
|
37
|
+
{ name: 'yes', type: 'boolean', summary: 'Confirm the shadow billing-data write.' },
|
|
38
|
+
{ name: 'service', type: 'string', value: '<url>' },
|
|
39
|
+
{ name: 'auth-token', type: 'string', value: '<t>' },
|
|
40
|
+
{ name: 'json', type: 'boolean' },
|
|
41
|
+
],
|
|
42
|
+
},
|
|
24
43
|
{
|
|
25
44
|
name: 'assistant',
|
|
26
45
|
section: 'operate',
|