@happyvertical/smrt-cli 0.57.45 → 0.57.47
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/AGENTS.md +1 -1
- package/README.md +10 -0
- package/dist/{AuditLogCollection-BBbvr8Qc-BN1vT_7k.js → AuditLogCollection-BBbvr8Qc-CRJkYRsA.js} +1 -1
- package/dist/{OidcIdentity-COeMidoC-BBoRG3Cg.js → OidcIdentity-COeMidoC-CUZnohef.js} +2 -2
- package/dist/{OidcIdentityCollection-D4DIZv0K-DnQyY4g6.js → OidcIdentityCollection-D4DIZv0K-e3olvYpI.js} +1 -1
- package/dist/{PasswordCredentialService-DHJNKEeJ-9q7K-IEH.js → PasswordCredentialService-DHJNKEeJ-BnYQa8Vl.js} +18 -15
- package/dist/{ProfileAssetCollection-D5-tG9Mm-BKiGYOuY.js → ProfileAssetCollection-D5-tG9Mm-C-PysY33.js} +3 -3
- package/dist/{ProfileCollection-CmRaiE9U-PGnstppN.js → ProfileCollection-CmRaiE9U-BdoUbBKn.js} +17 -17
- package/dist/{ProfileLinkCollection-pvPTsysg-h0aHEG3g.js → ProfileLinkCollection-pvPTsysg-C4azXXkY.js} +2 -2
- package/dist/{ProfileMetadataCollection-CAgJyjze-Bl-vAaBS.js → ProfileMetadataCollection-CAgJyjze-B2ZfYVVi.js} +1 -1
- package/dist/{ProfileMetafieldCollection-19ae6Lpf-7oNNDocC.js → ProfileMetafieldCollection-19ae6Lpf-SpD68sK5.js} +1 -1
- package/dist/{ProfileRelationshipCollection-BFSlTQ7J-Cenuqein.js → ProfileRelationshipCollection-BFSlTQ7J-CFw51ePA.js} +1 -1
- package/dist/{ProfileTypeCollection-BRLK8cHS-D78o6Dte.js → ProfileTypeCollection-BRLK8cHS-DYkP7kSv.js} +2 -2
- package/dist/app/portability.d.ts.map +1 -1
- package/dist/app.js +2 -2
- package/dist/{cli-CBuBU_5T.js → cli-CtRx1_yP.js} +1 -1
- package/dist/commands/db-migrate-uuid.d.ts.map +1 -1
- package/dist/commands/db-parity.d.ts +2 -1
- package/dist/commands/db-parity.d.ts.map +1 -1
- package/dist/commands/utilities.d.ts.map +1 -1
- package/dist/{commands-BafT49KC.js → commands-DY-iHYK-.js} +76 -15
- package/dist/discovery/manifest-discovery.d.ts.map +1 -1
- package/dist/dist--XyBvLqX.js +1854 -0
- package/dist/{dist-DPxJ4Uoq.js → dist-CYuHhnvx.js} +2 -2
- package/dist/{dist-B5jeZOQx.js → dist-Cpcv5pOO.js} +5 -5
- package/dist/{dist-B71Q-c_C.js → dist-D1Jf91RM.js} +3 -3
- package/dist/index.js +12 -12
- package/dist/{oidcProvisioningPrimitives-KpIiLmG4-BZeSfKjk.js → oidcProvisioningPrimitives-KpIiLmG4-DYKTIgNg.js} +3 -3
- package/dist/{operator-CeXluKXR.js → operator-cQG7GjwG.js} +2 -2
- package/dist/{portability-V05XvEu-.js → portability-CbMgEnD1.js} +2 -1
- package/dist/{resolveIdentity-j2WFuKDT-BRg-0Xri.js → resolveIdentity-j2WFuKDT-V4OMiSkb.js} +14 -14
- package/dist/runtime-check.d.ts.map +1 -1
- package/package.json +15 -15
- package/dist/dist-DN0dlJSD.js +0 -1854
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
|
|
2
|
-
import { i as tenantId, r as TenantScoped } from "./dist-
|
|
2
|
+
import { i as tenantId, r as TenantScoped } from "./dist-CYuHhnvx.js";
|
|
3
3
|
import { n as __exportAll$1 } from "./NostrIdentity-RJaATTCt-BbRHWyee.js";
|
|
4
|
-
import { a as getOwnedAssetsFromCollection, o as removeOwnedAssetFromCollection, t as addOwnedAssetFromCollection } from "./dist-
|
|
4
|
+
import { a as getOwnedAssetsFromCollection, o as removeOwnedAssetFromCollection, t as addOwnedAssetFromCollection } from "./dist-D1Jf91RM.js";
|
|
5
5
|
import { SmrtJunction, SmrtObject, crossPackageRef, field, foreignKey, smrt } from "@happyvertical/smrt-core";
|
|
6
6
|
//#region ../profiles/dist/chunks/ProfileAssetCollection-D5-tG9Mm.js
|
|
7
7
|
var ProfileAssetCollection_D5_tG9Mm_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -84,7 +84,7 @@ var ProfileAssetCollection = class extends SmrtJunction {
|
|
|
84
84
|
profileCollectionPromise = null;
|
|
85
85
|
async getProfileCollection() {
|
|
86
86
|
if (!this.profileCollectionPromise) {
|
|
87
|
-
const { ProfileCollection } = await import("./ProfileCollection-CmRaiE9U-
|
|
87
|
+
const { ProfileCollection } = await import("./ProfileCollection-CmRaiE9U-BdoUbBKn.js").then((n) => n.i).then((n) => n.r);
|
|
88
88
|
this.profileCollectionPromise = ProfileCollection.create({ db: this.db });
|
|
89
89
|
}
|
|
90
90
|
return this.profileCollectionPromise;
|
package/dist/{ProfileCollection-CmRaiE9U-PGnstppN.js → ProfileCollection-CmRaiE9U-BdoUbBKn.js}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
|
|
2
|
-
import { d as getTenantId, i as tenantId, m as withSystemContext, n as resolvePrompt, o as queryGlobal, r as TenantScoped, s as queryWithGlobals, t as definePrompt } from "./dist-
|
|
2
|
+
import { d as getTenantId, i as tenantId, m as withSystemContext, n as resolvePrompt, o as queryGlobal, r as TenantScoped, s as queryWithGlobals, t as definePrompt } from "./dist-CYuHhnvx.js";
|
|
3
3
|
import { n as __exportAll$1 } from "./NostrIdentity-RJaATTCt-BbRHWyee.js";
|
|
4
|
-
import { a as getOwnedAssetsFromCollection, i as assertValidOwnedAssetSortOrder, n as assertAssetLinkable, o as removeOwnedAssetFromCollection, r as assertValidOwnedAssetRelationship, s as resolveOwnedAssetsById, t as addOwnedAssetFromCollection } from "./dist-
|
|
4
|
+
import { a as getOwnedAssetsFromCollection, i as assertValidOwnedAssetSortOrder, n as assertAssetLinkable, o as removeOwnedAssetFromCollection, r as assertValidOwnedAssetRelationship, s as resolveOwnedAssetsById, t as addOwnedAssetFromCollection } from "./dist-D1Jf91RM.js";
|
|
5
5
|
import { RuntimeError, SmrtCollection, SmrtObject, ValidationError, field, foreignKey, isAbortedTransactionError, oneToMany, smrt } from "@happyvertical/smrt-core";
|
|
6
6
|
import { BackfillTableUnavailableError, BackfillTracker } from "@happyvertical/smrt-core/migrations";
|
|
7
7
|
//#region ../profiles/dist/chunks/ProfileCollection-CmRaiE9U.js
|
|
@@ -435,7 +435,7 @@ var Profile = class extends SmrtObject {
|
|
|
435
435
|
async getTypeSlug() {
|
|
436
436
|
const tenantId2 = this.tenantId || getTenantId();
|
|
437
437
|
if (this.typeId && tenantId2) {
|
|
438
|
-
const { ProfileTypeCollection } = await import("./ProfileTypeCollection-BRLK8cHS-
|
|
438
|
+
const { ProfileTypeCollection } = await import("./ProfileTypeCollection-BRLK8cHS-DYkP7kSv.js").then((n) => n.n).then((n) => n.n);
|
|
439
439
|
return (await (await ProfileTypeCollection.create(this.options)).getAvailableById(this.typeId, tenantId2))?.slug ?? "";
|
|
440
440
|
}
|
|
441
441
|
return (await this.loadRelated("typeId"))?.slug || "";
|
|
@@ -458,8 +458,8 @@ var Profile = class extends SmrtObject {
|
|
|
458
458
|
* @param value - The value to set
|
|
459
459
|
*/
|
|
460
460
|
async addMetadata(metafieldSlug, value) {
|
|
461
|
-
const { ProfileMetafieldCollection } = await import("./ProfileMetafieldCollection-19ae6Lpf-
|
|
462
|
-
const { ProfileMetadataCollection } = await import("./ProfileMetadataCollection-CAgJyjze-
|
|
461
|
+
const { ProfileMetafieldCollection } = await import("./ProfileMetafieldCollection-19ae6Lpf-SpD68sK5.js").then((n) => n.t).then((n) => n.n);
|
|
462
|
+
const { ProfileMetadataCollection } = await import("./ProfileMetadataCollection-CAgJyjze-B2ZfYVVi.js").then((n) => n.t).then((n) => n.n);
|
|
463
463
|
const metafield = await this.resolveMetafield(await ProfileMetafieldCollection.create(this.options), metafieldSlug);
|
|
464
464
|
if (!metafield) throw new Error(`Metafield '${metafieldSlug}' not found`);
|
|
465
465
|
await metafield.validateValue(value);
|
|
@@ -492,7 +492,7 @@ var Profile = class extends SmrtObject {
|
|
|
492
492
|
* @returns Object with metafield slugs as keys
|
|
493
493
|
*/
|
|
494
494
|
async getMetadata() {
|
|
495
|
-
const { ProfileMetadataCollection } = await import("./ProfileMetadataCollection-CAgJyjze-
|
|
495
|
+
const { ProfileMetadataCollection } = await import("./ProfileMetadataCollection-CAgJyjze-B2ZfYVVi.js").then((n) => n.t).then((n) => n.n);
|
|
496
496
|
return await (await ProfileMetadataCollection.create(this.options)).getMetadataObject(this.id);
|
|
497
497
|
}
|
|
498
498
|
/**
|
|
@@ -509,8 +509,8 @@ var Profile = class extends SmrtObject {
|
|
|
509
509
|
* @param metafieldSlug - The slug of the metafield to remove
|
|
510
510
|
*/
|
|
511
511
|
async removeMetadata(metafieldSlug) {
|
|
512
|
-
const { ProfileMetafieldCollection } = await import("./ProfileMetafieldCollection-19ae6Lpf-
|
|
513
|
-
const { ProfileMetadataCollection } = await import("./ProfileMetadataCollection-CAgJyjze-
|
|
512
|
+
const { ProfileMetafieldCollection } = await import("./ProfileMetafieldCollection-19ae6Lpf-SpD68sK5.js").then((n) => n.t).then((n) => n.n);
|
|
513
|
+
const { ProfileMetadataCollection } = await import("./ProfileMetadataCollection-CAgJyjze-B2ZfYVVi.js").then((n) => n.t).then((n) => n.n);
|
|
514
514
|
const metafield = await this.resolveMetafield(await ProfileMetafieldCollection.create(this.options), metafieldSlug);
|
|
515
515
|
if (!metafield) throw new Error(`Metafield '${metafieldSlug}' not found`);
|
|
516
516
|
const existing = await (await ProfileMetadataCollection.create(this.options)).list({
|
|
@@ -535,7 +535,7 @@ var Profile = class extends SmrtObject {
|
|
|
535
535
|
return candidates.find((candidate) => ownerTenantId && candidate.tenantId === ownerTenantId) ?? candidates.find((candidate) => !candidate.tenantId) ?? null;
|
|
536
536
|
}
|
|
537
537
|
async getProfileLinkCollection() {
|
|
538
|
-
const { ProfileLinkCollection } = await import("./ProfileLinkCollection-pvPTsysg-
|
|
538
|
+
const { ProfileLinkCollection } = await import("./ProfileLinkCollection-pvPTsysg-C4azXXkY.js").then((n) => n.t).then((n) => n.r);
|
|
539
539
|
return ProfileLinkCollection.create({ db: this.db });
|
|
540
540
|
}
|
|
541
541
|
/** This profile's web links in display order. */
|
|
@@ -552,7 +552,7 @@ var Profile = class extends SmrtObject {
|
|
|
552
552
|
return (await this.getProfileLinkCollection()).replaceForProfile(this.id, links);
|
|
553
553
|
}
|
|
554
554
|
async getProfileAssetCollection() {
|
|
555
|
-
const { ProfileAssetCollection } = await import("./ProfileAssetCollection-D5-tG9Mm-
|
|
555
|
+
const { ProfileAssetCollection } = await import("./ProfileAssetCollection-D5-tG9Mm-C-PysY33.js").then((n) => n.t).then((n) => n.n);
|
|
556
556
|
return ProfileAssetCollection.create({ db: this.db });
|
|
557
557
|
}
|
|
558
558
|
async getAssets(relationship) {
|
|
@@ -584,7 +584,7 @@ var Profile = class extends SmrtObject {
|
|
|
584
584
|
*/
|
|
585
585
|
async addRelationship(toProfile, relationshipSlug, contextProfile) {
|
|
586
586
|
const { ProfileRelationshipTypeCollection } = await import("./ProfileRelationshipTypeCollection-BRBpX00F-D78l9V1y.js").then((n) => n.t).then((n) => n.n);
|
|
587
|
-
const { ProfileRelationshipCollection } = await import("./ProfileRelationshipCollection-BFSlTQ7J-
|
|
587
|
+
const { ProfileRelationshipCollection } = await import("./ProfileRelationshipCollection-BFSlTQ7J-CFw51ePA.js").then((n) => n.t).then((n) => n.n);
|
|
588
588
|
const { ProfileRelationshipType } = await import("./ProfileRelationshipType-Cevy-vaF-G82Gg40q.js").then((n) => n.n).then((n) => n.n);
|
|
589
589
|
const relationshipType = await (await ProfileRelationshipTypeCollection.create(this.options)).getBySlug(relationshipSlug);
|
|
590
590
|
if (!relationshipType) throw new Error(`Relationship type '${relationshipSlug}' not found`);
|
|
@@ -609,7 +609,7 @@ var Profile = class extends SmrtObject {
|
|
|
609
609
|
* @returns Array of ProfileRelationship instances
|
|
610
610
|
*/
|
|
611
611
|
async getRelationships(options) {
|
|
612
|
-
const { ProfileRelationshipCollection } = await import("./ProfileRelationshipCollection-BFSlTQ7J-
|
|
612
|
+
const { ProfileRelationshipCollection } = await import("./ProfileRelationshipCollection-BFSlTQ7J-CFw51ePA.js").then((n) => n.t).then((n) => n.n);
|
|
613
613
|
const { ProfileRelationshipTypeCollection } = await import("./ProfileRelationshipTypeCollection-BRBpX00F-D78l9V1y.js").then((n) => n.t).then((n) => n.n);
|
|
614
614
|
const relationshipCollection = await ProfileRelationshipCollection.create(this.options);
|
|
615
615
|
const direction = options?.direction || "all";
|
|
@@ -654,7 +654,7 @@ var Profile = class extends SmrtObject {
|
|
|
654
654
|
*/
|
|
655
655
|
async removeRelationship(toProfile, relationshipSlug) {
|
|
656
656
|
const { ProfileRelationshipTypeCollection } = await import("./ProfileRelationshipTypeCollection-BRBpX00F-D78l9V1y.js").then((n) => n.t).then((n) => n.n);
|
|
657
|
-
const { ProfileRelationshipCollection } = await import("./ProfileRelationshipCollection-BFSlTQ7J-
|
|
657
|
+
const { ProfileRelationshipCollection } = await import("./ProfileRelationshipCollection-BFSlTQ7J-CFw51ePA.js").then((n) => n.t).then((n) => n.n);
|
|
658
658
|
const relationshipType = await (await ProfileRelationshipTypeCollection.create(this.options)).getBySlug(relationshipSlug);
|
|
659
659
|
if (!relationshipType) throw new Error(`Relationship type '${relationshipSlug}' not found`);
|
|
660
660
|
const relationshipCollection = await ProfileRelationshipCollection.create(this.options);
|
|
@@ -778,7 +778,7 @@ var Profile = class extends SmrtObject {
|
|
|
778
778
|
* @returns Array of OIDC identity records
|
|
779
779
|
*/
|
|
780
780
|
async getOidcIdentities() {
|
|
781
|
-
const { OidcIdentityCollection } = await import("./OidcIdentityCollection-D4DIZv0K-
|
|
781
|
+
const { OidcIdentityCollection } = await import("./OidcIdentityCollection-D4DIZv0K-e3olvYpI.js").then((n) => n.r).then((n) => n.r);
|
|
782
782
|
return await (await OidcIdentityCollection.create(this.options)).findByProfile(this.id);
|
|
783
783
|
}
|
|
784
784
|
/**
|
|
@@ -791,7 +791,7 @@ var Profile = class extends SmrtObject {
|
|
|
791
791
|
* type, but refuses to create or rebind authority.
|
|
792
792
|
*/
|
|
793
793
|
async linkOidcIdentity(oidcData) {
|
|
794
|
-
const { OidcIdentityCollection } = await import("./OidcIdentityCollection-D4DIZv0K-
|
|
794
|
+
const { OidcIdentityCollection } = await import("./OidcIdentityCollection-D4DIZv0K-e3olvYpI.js").then((n) => n.r).then((n) => n.r);
|
|
795
795
|
return await (await OidcIdentityCollection.create(this.options)).linkToProfile(this, oidcData);
|
|
796
796
|
}
|
|
797
797
|
/**
|
|
@@ -820,7 +820,7 @@ var Profile = class extends SmrtObject {
|
|
|
820
820
|
* @returns Array of audit log entries
|
|
821
821
|
*/
|
|
822
822
|
async getAuditLogs(limit = 50) {
|
|
823
|
-
const { AuditLogCollection } = await import("./AuditLogCollection-BBbvr8Qc-
|
|
823
|
+
const { AuditLogCollection } = await import("./AuditLogCollection-BBbvr8Qc-CRJkYRsA.js").then((n) => n.t).then((n) => n.n);
|
|
824
824
|
return await (await AuditLogCollection.create(this.options)).getRecentActivity(this.id, limit);
|
|
825
825
|
}
|
|
826
826
|
/**
|
|
@@ -830,7 +830,7 @@ var Profile = class extends SmrtObject {
|
|
|
830
830
|
* @returns The created audit log entry
|
|
831
831
|
*/
|
|
832
832
|
async recordAction(options) {
|
|
833
|
-
const { AuditLogCollection } = await import("./AuditLogCollection-BBbvr8Qc-
|
|
833
|
+
const { AuditLogCollection } = await import("./AuditLogCollection-BBbvr8Qc-CRJkYRsA.js").then((n) => n.t).then((n) => n.n);
|
|
834
834
|
return await (await AuditLogCollection.create(this.options)).record({
|
|
835
835
|
profile: this,
|
|
836
836
|
...options
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
|
|
2
|
-
import { i as tenantId, r as TenantScoped } from "./dist-
|
|
2
|
+
import { i as tenantId, r as TenantScoped } from "./dist-CYuHhnvx.js";
|
|
3
3
|
import { n as __exportAll$1 } from "./NostrIdentity-RJaATTCt-BbRHWyee.js";
|
|
4
4
|
import { SmrtCollection, SmrtObject, field, foreignKey, isEmbeddedDatabase, smrt, withEmbeddedWriteTransaction } from "@happyvertical/smrt-core";
|
|
5
5
|
//#region ../profiles/dist/chunks/ProfileLinkCollection-pvPTsysg.js
|
|
@@ -203,7 +203,7 @@ var ProfileLinkCollection = class ProfileLinkCollection extends SmrtCollection {
|
|
|
203
203
|
/** The profile's tenant; throws when the profile is not visible here. */
|
|
204
204
|
async requireProfileTenant(profileId) {
|
|
205
205
|
if (!profileId) throw new Error("A profile link needs a profile");
|
|
206
|
-
const { ProfileCollection } = await import("./ProfileCollection-CmRaiE9U-
|
|
206
|
+
const { ProfileCollection } = await import("./ProfileCollection-CmRaiE9U-BdoUbBKn.js").then((n) => n.i).then((n) => n.r);
|
|
207
207
|
const profile = await (await ProfileCollection.create({ db: this.db })).get({ id: profileId });
|
|
208
208
|
if (!profile) throw new Error(`Profile '${profileId}' not found`);
|
|
209
209
|
return profile.tenantId ?? null;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
|
|
2
|
-
import { i as tenantId, r as TenantScoped } from "./dist-
|
|
2
|
+
import { i as tenantId, r as TenantScoped } from "./dist-CYuHhnvx.js";
|
|
3
3
|
import { n as __exportAll$1 } from "./NostrIdentity-RJaATTCt-BbRHWyee.js";
|
|
4
4
|
import { SmrtCollection, SmrtObject, field, foreignKey, smrt } from "@happyvertical/smrt-core";
|
|
5
5
|
//#region ../profiles/dist/chunks/ProfileMetadataCollection-CAgJyjze.js
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
|
|
2
|
-
import { i as tenantId, r as TenantScoped } from "./dist-
|
|
2
|
+
import { i as tenantId, r as TenantScoped } from "./dist-CYuHhnvx.js";
|
|
3
3
|
import { n as __exportAll$1 } from "./NostrIdentity-RJaATTCt-BbRHWyee.js";
|
|
4
4
|
import { SmrtCollection, SmrtObject, field, smrt } from "@happyvertical/smrt-core";
|
|
5
5
|
//#region ../profiles/dist/chunks/ProfileMetafieldCollection-19ae6Lpf.js
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
|
|
2
|
-
import { i as tenantId, r as TenantScoped } from "./dist-
|
|
2
|
+
import { i as tenantId, r as TenantScoped } from "./dist-CYuHhnvx.js";
|
|
3
3
|
import { n as __exportAll$1 } from "./NostrIdentity-RJaATTCt-BbRHWyee.js";
|
|
4
4
|
import { SmrtCollection, SmrtObject, foreignKey, oneToMany, smrt } from "@happyvertical/smrt-core";
|
|
5
5
|
//#region ../profiles/dist/chunks/ProfileRelationshipCollection-BFSlTQ7J.js
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
|
|
2
|
-
import { l as withTenantGlobalRead, p as isSystemContext } from "./dist-
|
|
2
|
+
import { l as withTenantGlobalRead, p as isSystemContext } from "./dist-CYuHhnvx.js";
|
|
3
3
|
import { n as __exportAll$1 } from "./NostrIdentity-RJaATTCt-BbRHWyee.js";
|
|
4
|
-
import { a as ProfileType } from "./ProfileCollection-CmRaiE9U-
|
|
4
|
+
import { a as ProfileType } from "./ProfileCollection-CmRaiE9U-BdoUbBKn.js";
|
|
5
5
|
import { SmrtCollection } from "@happyvertical/smrt-core";
|
|
6
6
|
//#region ../profiles/dist/chunks/ProfileTypeCollection-BRLK8cHS.js
|
|
7
7
|
var ProfileTypeCollection_BRLK8cHS_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portability.d.ts","sourceRoot":"","sources":["../../src/app/portability.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,OAAO,EACL,KAAK,WAAW,EAOhB,KAAK,WAAW,EAChB,KAAK,aAAa,EAQnB,MAAM,yBAAyB,CAAC;AAQjC,2EAA2E;AAC3E,MAAM,WAAW,wBAAwB;IACvC,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,0CAA0C;AAC1C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAC5D,WAAW,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChE,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,2EAA2E;AAC3E,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC9B;AAED,wCAAwC;AACxC,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,CAAC,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,2CAA2C;AAC3C,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE;QAAE,QAAQ,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CAC7C;AAED,yEAAyE;AACzE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACxC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC/C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACxD,8CAA8C;IAC9C,YAAY,CAAC,EAAE,CACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACjC;AAkBD,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"portability.d.ts","sourceRoot":"","sources":["../../src/app/portability.ts"],"names":[],"mappings":"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"}
|
package/dist/app.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as assertExternalArtifactPath, C as prepareMigration, D as cliExecutablePath, E as validateMcpAppsIfPresent, F as AppCommandError, I as ApplicationStartError, M as resolveApplicationId, N as resolveApplicationStateRoot, O as runtimeEnvironment, P as runtimeConfigurationFingerprint, R as redactSecrets, S as launchVite, T as runWorker, _ as sendTerminationSignal, a as renderAppHelp, b as ViteLauncherError, c as parseTokenLifetime, d as START_OUTPUT_TAIL_BYTES, f as runApplicationOperation, g as readOwnedProcess, h as matchesApplicationProcess, i as errorEnvelope, j as prepareApplicationStateRoot, k as webLauncherPath, l as runTokenOperation, m as checkOwnedProcess, n as APP_RECOVERY, o as runAppCommand, p as WEB_LAUNCHER_NAME, s as TOKEN_USAGE, t as APP_COMMANDS, u as APP_OPERATIONS, v as verifyOwnedProcess, w as resolveViteEntry, x as devServerArguments, y as writeProcessRecord } from "./cli-
|
|
2
|
-
import { C as publishFilesystemAssets, D as stageFilesystemAssets, E as rollbackFilesystemAssets, O as verifyFilesystemAssets, S as markFilesystemAssetsCommitted, T as recoverFilesystemAssets, _ as bundleContentDigest, a as manifestTables, b as finishFilesystemAssets, c as serializeExportBundle, d as AssetPortabilityError, f as MAX_ASSET_BYTES, g as assertAssetRoot, h as MAX_TOTAL_ASSET_BYTES, i as importedRowsMatchBundle, k as verifyPublishedFilesystemAssets, l as validateImportBundle, m as MAX_BUNDLE_BYTES, n as exportApplication, o as planImportTables, p as MAX_ASSET_COUNT, r as importApplication, t as executeImportPlan, u as ASSET_MANIFEST_SCHEMA_VERSION, v as collectFilesystemAssets, w as readSensitiveBundle, x as hasCommittedImportJournal, y as digestBytes } from "./portability-
|
|
1
|
+
import { A as assertExternalArtifactPath, C as prepareMigration, D as cliExecutablePath, E as validateMcpAppsIfPresent, F as AppCommandError, I as ApplicationStartError, M as resolveApplicationId, N as resolveApplicationStateRoot, O as runtimeEnvironment, P as runtimeConfigurationFingerprint, R as redactSecrets, S as launchVite, T as runWorker, _ as sendTerminationSignal, a as renderAppHelp, b as ViteLauncherError, c as parseTokenLifetime, d as START_OUTPUT_TAIL_BYTES, f as runApplicationOperation, g as readOwnedProcess, h as matchesApplicationProcess, i as errorEnvelope, j as prepareApplicationStateRoot, k as webLauncherPath, l as runTokenOperation, m as checkOwnedProcess, n as APP_RECOVERY, o as runAppCommand, p as WEB_LAUNCHER_NAME, s as TOKEN_USAGE, t as APP_COMMANDS, u as APP_OPERATIONS, v as verifyOwnedProcess, w as resolveViteEntry, x as devServerArguments, y as writeProcessRecord } from "./cli-CtRx1_yP.js";
|
|
2
|
+
import { C as publishFilesystemAssets, D as stageFilesystemAssets, E as rollbackFilesystemAssets, O as verifyFilesystemAssets, S as markFilesystemAssetsCommitted, T as recoverFilesystemAssets, _ as bundleContentDigest, a as manifestTables, b as finishFilesystemAssets, c as serializeExportBundle, d as AssetPortabilityError, f as MAX_ASSET_BYTES, g as assertAssetRoot, h as MAX_TOTAL_ASSET_BYTES, i as importedRowsMatchBundle, k as verifyPublishedFilesystemAssets, l as validateImportBundle, m as MAX_BUNDLE_BYTES, n as exportApplication, o as planImportTables, p as MAX_ASSET_COUNT, r as importApplication, t as executeImportPlan, u as ASSET_MANIFEST_SCHEMA_VERSION, v as collectFilesystemAssets, w as readSensitiveBundle, x as hasCommittedImportJournal, y as digestBytes } from "./portability-CbMgEnD1.js";
|
|
3
3
|
import { PROVIDER_READINESS_SETTINGS, RECLAIM_MUTEX_FILE, acquireWriterLease, createProviderReadinessProbe, findInstalledPackage, isStaleOperationLock, lockOwnerPid, processExists, readActiveWriterLease, reclaimStaleRecord, resolveReadinessModule, withOperationLock } from "@happyvertical/smrt-app-runtime";
|
|
4
4
|
export { APP_COMMANDS, APP_OPERATIONS, APP_RECOVERY, ASSET_MANIFEST_SCHEMA_VERSION, AppCommandError, ApplicationStartError, AssetPortabilityError, MAX_ASSET_BYTES, MAX_ASSET_COUNT, MAX_BUNDLE_BYTES, MAX_TOTAL_ASSET_BYTES, PROVIDER_READINESS_SETTINGS, RECLAIM_MUTEX_FILE, START_OUTPUT_TAIL_BYTES, TOKEN_USAGE, ViteLauncherError, WEB_LAUNCHER_NAME, acquireWriterLease, assertAssetRoot, assertExternalArtifactPath, bundleContentDigest, checkOwnedProcess, cliExecutablePath, collectFilesystemAssets, createProviderReadinessProbe, devServerArguments, digestBytes, errorEnvelope, executeImportPlan, exportApplication, findInstalledPackage, finishFilesystemAssets, hasCommittedImportJournal, importApplication, importedRowsMatchBundle, isStaleOperationLock, launchVite, lockOwnerPid, manifestTables, markFilesystemAssetsCommitted, matchesApplicationProcess, parseTokenLifetime, planImportTables, prepareApplicationStateRoot, prepareMigration, processExists, publishFilesystemAssets, readActiveWriterLease, readOwnedProcess, readSensitiveBundle, reclaimStaleRecord, recoverFilesystemAssets, redactSecrets, renderAppHelp, resolveApplicationId, resolveApplicationStateRoot, resolveReadinessModule, resolveViteEntry, rollbackFilesystemAssets, runAppCommand, runApplicationOperation, runTokenOperation, runWorker, runtimeConfigurationFingerprint, runtimeEnvironment, sendTerminationSignal, serializeExportBundle, stageFilesystemAssets, validateImportBundle, validateMcpAppsIfPresent, verifyFilesystemAssets, verifyOwnedProcess, verifyPublishedFilesystemAssets, webLauncherPath, withOperationLock, writeProcessRecord };
|
|
@@ -1292,7 +1292,7 @@ async function backup(context, args) {
|
|
|
1292
1292
|
async function loadPortabilityAdapter(context) {
|
|
1293
1293
|
const override = join(context.sourceRoot, "scripts", "smrt-portability.mjs");
|
|
1294
1294
|
if (existsSync(override)) return await import(pathToFileURL(override).href);
|
|
1295
|
-
return import("./portability-
|
|
1295
|
+
return import("./portability-CbMgEnD1.js").then((n) => n.s);
|
|
1296
1296
|
}
|
|
1297
1297
|
async function portability(context, operation, args, operationLock) {
|
|
1298
1298
|
const adapter = await loadPortabilityAdapter(context);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-migrate-uuid.d.ts","sourceRoot":"","sources":["../../src/commands/db-migrate-uuid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;
|
|
1
|
+
{"version":3,"file":"db-migrate-uuid.d.ts","sourceRoot":"","sources":["../../src/commands/db-migrate-uuid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AAQH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAqCtD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,iBAAiB,EAAE,MAAM,CACvB,MAAM,EACN;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAChD,GACA,GAAG,CAAC,MAAM,CAAC,CAWb;AAYD,mEAAmE;AACnE,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B;;;;OAIG;IACH,aAAa,EAAE,KAAK,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC,CAAC;IACH,4EAA4E;IAC5E,eAAe,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/E;AAED,sEAAsE;AACtE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AA+BD,wBAAgB,kCAAkC,CAChD,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,cAAc,EAAE,GACtB,cAAc,CA6EhB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,cAAc,EAAE,EAC7B,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GACxB,cAAc,CAgChB;AAED,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,UAAU,EAAE,CA2Bd;AAED,eAAO,MAAM,oBAAoB,EAAE,UA4JlC,CAAC"}
|
|
@@ -47,7 +47,8 @@ export interface LiveSchemaParityOutcome {
|
|
|
47
47
|
export declare function collectRegistryConflictTargets(): Record<string, ConflictTargetInput[]>;
|
|
48
48
|
/**
|
|
49
49
|
* Matches core's collection classification, including a registered collection
|
|
50
|
-
* subclass whose immediate parent is another collection class
|
|
50
|
+
* subclass whose immediate parent is another collection class and the
|
|
51
|
+
* manifest's `collectionOf` classification (#3956). Unknown
|
|
51
52
|
* registrations stay included so a malformed registry cannot hide a real
|
|
52
53
|
* persistence target from a fail-closed parity check.
|
|
53
54
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-parity.d.ts","sourceRoot":"","sources":["../../src/commands/db-parity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,KAAK,mBAAmB,EAGxB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAE5B,MAAM,0BAA0B,CAAC;AASlC,uDAAuD;AACvD,MAAM,WAAW,0BAA0B;IACzC,sDAAsD;IACtD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,0CAA0C;AAC1C,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACtC,6EAA6E;IAC7E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAChD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,CACtD,MAAM,EACN,mBAAmB,EAAE,CACtB,CAkBA;AAED
|
|
1
|
+
{"version":3,"file":"db-parity.d.ts","sourceRoot":"","sources":["../../src/commands/db-parity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,KAAK,mBAAmB,EAGxB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAE5B,MAAM,0BAA0B,CAAC;AASlC,uDAAuD;AACvD,MAAM,WAAW,0BAA0B;IACzC,sDAAsD;IACtD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,0CAA0C;AAC1C,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACtC,6EAA6E;IAC7E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAChD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,CACtD,MAAM,EACN,mBAAmB,EAAE,CACtB,CAkBA;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAgBnE;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,uBAAuB,CAAC,CAoDlC;AAQD,8DAA8D;AAC9D,wBAAgB,cAAc,CAC5B,MAAM,EAAE,sBAAsB,EAC9B,QAAQ,EAAE,kBAAkB,GAC3B,iBAAiB,EAAE,CAQrB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,sBAAsB,EAC9B,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,MAAM,EAAE,CAuEV;AAED,qEAAqE;AACrE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAE5E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/commands/utilities.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/commands/utilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { constants, createReadStream, existsSync, mkdirSync, mkdtempSync, readFi
|
|
|
9
9
|
import * as path from "node:path";
|
|
10
10
|
import { basename, dirname, extname, isAbsolute, join, normalize, relative, resolve, sep } from "node:path";
|
|
11
11
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
12
|
-
import { ObjectRegistry, SchemaComparer, checkLiveSchemaParity, collectForeignKeyOrphanCounts, createQualifiedName, ensureDeferredSystemTableCompatibility, generateDDLForEngine, getClassName, isQualifiedName, isSmrtCollectionExtendsName, migratePostgresSystemTimestamps, parseQualifiedName, planForeignKeyCreation, planPostgresSystemTimestampMigrations } from "@happyvertical/smrt-core";
|
|
12
|
+
import { ObjectRegistry, SchemaComparer, checkLiveSchemaParity, collectForeignKeyOrphanCounts, createQualifiedName, ensureDeferredSystemTableCompatibility, ensureSystemTables, generateDDLForEngine, getClassName, isQualifiedName, isRefusedTestArtifact, isSmrtCollectionExtendsName, migratePostgresSystemTimestamps, parseQualifiedName, planForeignKeyCreation, planPostgresSystemTimestampMigrations } from "@happyvertical/smrt-core";
|
|
13
13
|
import { loadExternalManifestSync } from "@happyvertical/smrt-core/manifest";
|
|
14
14
|
import { execFile, execFileSync, execSync, spawn, spawnSync } from "node:child_process";
|
|
15
15
|
import { homedir, tmpdir } from "node:os";
|
|
@@ -27,7 +27,7 @@ import https from "node:https";
|
|
|
27
27
|
import { createServer } from "node:http";
|
|
28
28
|
import { importWorkspaceModule } from "@happyvertical/smrt-core/utils/import-workspace-module";
|
|
29
29
|
import { renderForeignKeyAddStatements } from "@happyvertical/smrt-core/schema";
|
|
30
|
-
import { FRAMEWORK_BASE_TABLE_NAMES, backfillLegacyQualifiedNames, buildIntegerWidthTableStatements, collectIntegerWidthTargets, collectNullEqualIndexTargets, countLegacyQualifiedNameReferences, dropFrameworkBaseTables, migrateNullEqualIndexes, nullEqualIndexStatements, parsePostgresTimeoutMs, planFrameworkBaseTableDrop, preflightIntegerWidthWidening, preflightNullEqualIndexes, widenIntegerColumnsToBigInt } from "@happyvertical/smrt-core/migrations";
|
|
30
|
+
import { FRAMEWORK_BASE_TABLE_NAMES, SYSTEM_TABLE_TENANT_UUID_COLUMNS, backfillLegacyQualifiedNames, buildIntegerWidthTableStatements, collectIntegerWidthTargets, collectNullEqualIndexTargets, countLegacyQualifiedNameReferences, dropFrameworkBaseTables, ensurePostgresChangeFeedAppendFunction, migrateNullEqualIndexes, nullEqualIndexStatements, parsePostgresTimeoutMs, planFrameworkBaseTableDrop, preflightIntegerWidthWidening, preflightNullEqualIndexes, widenIntegerColumnsToBigInt } from "@happyvertical/smrt-core/migrations";
|
|
31
31
|
import { buildArchitectureContext, buildKnowledgeIndex, buildReviewContext, checkKnowledgeFreshness, compactContextResult, diffKnowledgeIndex, renderFreshnessResult, renderKnowledgeIndexMarkdown } from "@happyvertical/smrt-dev-mcp/knowledge";
|
|
32
32
|
import { RUNTIME_TOOLS } from "@happyvertical/smrt-dev-mcp/runtime";
|
|
33
33
|
//#region src/commands/config-export.ts
|
|
@@ -383,7 +383,7 @@ async function findProjectManifests(projectRoot) {
|
|
|
383
383
|
const manifestPath = resolve(projectRoot, candidate);
|
|
384
384
|
try {
|
|
385
385
|
const manifest = await loadManifestFile(manifestPath);
|
|
386
|
-
if (manifest?.objects) {
|
|
386
|
+
if (manifest?.objects && !isRefusedTestArtifact(manifest, manifestPath)) {
|
|
387
387
|
const objectNames = Object.keys(manifest.objects);
|
|
388
388
|
discovered.push({
|
|
389
389
|
path: manifestPath,
|
|
@@ -445,7 +445,7 @@ async function findPackageManifests(projectRoot) {
|
|
|
445
445
|
];
|
|
446
446
|
for (const manifestPath of manifestCandidates) try {
|
|
447
447
|
const manifest = await loadManifestFile(manifestPath);
|
|
448
|
-
if (manifest?.objects) {
|
|
448
|
+
if (manifest?.objects && !isRefusedTestArtifact(manifest, manifestPath)) {
|
|
449
449
|
const objectNames = Object.keys(manifest.objects);
|
|
450
450
|
seenPackages.add(packageKey);
|
|
451
451
|
discovered.push({
|
|
@@ -2691,14 +2691,15 @@ function collectRegistryConflictTargets() {
|
|
|
2691
2691
|
}
|
|
2692
2692
|
/**
|
|
2693
2693
|
* Matches core's collection classification, including a registered collection
|
|
2694
|
-
* subclass whose immediate parent is another collection class
|
|
2694
|
+
* subclass whose immediate parent is another collection class and the
|
|
2695
|
+
* manifest's `collectionOf` classification (#3956). Unknown
|
|
2695
2696
|
* registrations stay included so a malformed registry cannot hide a real
|
|
2696
2697
|
* persistence target from a fail-closed parity check.
|
|
2697
2698
|
*/
|
|
2698
2699
|
function isCollectionRegistration(className) {
|
|
2699
2700
|
for (const name of [className, ...ObjectRegistry.getInheritanceChain(className)]) {
|
|
2700
2701
|
const registered = ObjectRegistry.getClass(name);
|
|
2701
|
-
if (registered && isSmrtCollectionExtendsName(registered.extends)) return true;
|
|
2702
|
+
if (registered && (registered.collectionOf || isSmrtCollectionExtendsName(registered.extends))) return true;
|
|
2702
2703
|
}
|
|
2703
2704
|
return false;
|
|
2704
2705
|
}
|
|
@@ -8424,7 +8425,7 @@ var dbMaterializeTenantHierarchyCommand = {
|
|
|
8424
8425
|
if (!config.database?.url || config.database.url === ":memory:") throw new Error("Database configuration required for db:materialize-tenant-hierarchy. Configure database.url in smrt.config.ts (or DATABASE_URL).");
|
|
8425
8426
|
const dbType = config.database.type || "sqlite";
|
|
8426
8427
|
const { getDatabase } = await import("@happyvertical/sql");
|
|
8427
|
-
const { materializeTenantHierarchy, TenantHierarchyMaterializationError } = await import("./dist
|
|
8428
|
+
const { materializeTenantHierarchy, TenantHierarchyMaterializationError } = await import("./dist--XyBvLqX.js");
|
|
8428
8429
|
db = await getDatabase({
|
|
8429
8430
|
type: dbType,
|
|
8430
8431
|
url: config.database.url
|
|
@@ -8633,7 +8634,7 @@ var dbMigrateLedgerAccountsCommand = {
|
|
|
8633
8634
|
if (dbType !== "postgres") throw new Error("db:migrate-ledger-accounts currently supports PostgreSQL only; no changes were made. See the smrt-ledgers README for SQLite.");
|
|
8634
8635
|
await autoDiscoverAndLoad();
|
|
8635
8636
|
const { getDatabase } = await import("@happyvertical/sql");
|
|
8636
|
-
const { migrateLedgerAccountsTable, planLedgerAccountsTableMove } = await import("./dist-
|
|
8637
|
+
const { migrateLedgerAccountsTable, planLedgerAccountsTableMove } = await import("./dist-Cpcv5pOO.js");
|
|
8637
8638
|
db = await getDatabase({
|
|
8638
8639
|
type: dbType,
|
|
8639
8640
|
url: config.database.url
|
|
@@ -9159,7 +9160,8 @@ async function convertPostgresUuidColumns(db, declaredUuid, dryRun, renderDryRun
|
|
|
9159
9160
|
const initialPlan = planUuidConversions(liveColumns, declaredUuid);
|
|
9160
9161
|
const { skipDirtyData, skipNotDeclared } = initialPlan;
|
|
9161
9162
|
await assertNoCrossSchemaForeignKeyPartners(db, new Set([...initialPlan.convert, ...skipDirtyData].map((candidate) => declaredUuidKey(candidate.table, candidate.column))));
|
|
9162
|
-
const
|
|
9163
|
+
const propagated = propagateBlockedForeignKeyPartners(initialPlan, await fetchSingleColumnForeignKeyEdges(db));
|
|
9164
|
+
const { convert, skipBlockedPartner } = await holdSystemTenantColumnsTogether(db, propagated.convert, [...skipDirtyData, ...propagated.skipBlockedPartner ?? []], propagated.skipBlockedPartner ?? []);
|
|
9163
9165
|
console.log(`Found ${candidateRows.length} TEXT id/FK column(s): ${convert.length} convertible, ${skipDirtyData.length + skipNotDeclared.length + skipBlockedPartner.length} skipped.`);
|
|
9164
9166
|
for (const item of skipDirtyData) console.log(` SKIP ${item.table}.${item.column}: ${dirtyDataReason(item)}`);
|
|
9165
9167
|
for (const item of skipNotDeclared) console.log(` SKIP ${item.table}.${item.column}: not schema-declared UUID`);
|
|
@@ -9192,6 +9194,7 @@ async function convertPostgresUuidColumns(db, declaredUuid, dryRun, renderDryRun
|
|
|
9192
9194
|
console.log("\nDry run complete — no changes applied.\n");
|
|
9193
9195
|
return;
|
|
9194
9196
|
}
|
|
9197
|
+
if (columns.some((column) => column.table.startsWith("_smrt_changes"))) await ensurePostgresChangeFeedAppendFunction(db, { typeHint: "postgres" });
|
|
9195
9198
|
for (const table of tables) await db.query(`LOCK TABLE ${pgTable(table)} IN ACCESS EXCLUSIVE MODE`);
|
|
9196
9199
|
await assertSupportedSourceColumns(db, columns);
|
|
9197
9200
|
for (const column of columns) {
|
|
@@ -9657,6 +9660,54 @@ async function applyRenameBackfills(db, isPostgres, renameSpecs, dryRun, { ownTr
|
|
|
9657
9660
|
}
|
|
9658
9661
|
console.log();
|
|
9659
9662
|
}
|
|
9663
|
+
/** Keys of the system tenant columns; read lazily so module mocks need not export it. */
|
|
9664
|
+
function systemTenantColumnKeys() {
|
|
9665
|
+
return new Set(SYSTEM_TABLE_TENANT_UUID_COLUMNS.map(({ table, column }) => declaredUuidKey(table, column)));
|
|
9666
|
+
}
|
|
9667
|
+
/**
|
|
9668
|
+
* The system tenant columns convert together or not at all (#3297).
|
|
9669
|
+
*
|
|
9670
|
+
* They are linked by behaviour, not foreign keys: the drain moves
|
|
9671
|
+
* `_smrt_changes_pending` rows into `_smrt_changes`, and dispatch rows and
|
|
9672
|
+
* subscriptions carry the same context tenant. Converting one while a sibling
|
|
9673
|
+
* stays TEXT with a non-UUID value strands staged feed entries or starts
|
|
9674
|
+
* rejecting writes. So any blocked system column — or any blocked
|
|
9675
|
+
* application `tenant_id` (non-UUID tenants are still in use) — or a legacy
|
|
9676
|
+
* timezone-naive `_smrt_changes.created_at` (the helpers cannot be installed
|
|
9677
|
+
* until the audited timestamp migration runs) holds all of them back.
|
|
9678
|
+
*/
|
|
9679
|
+
async function holdSystemTenantColumnsTogether(db, convert, blocked, skipBlockedPartner) {
|
|
9680
|
+
const systemKeys = systemTenantColumnKeys();
|
|
9681
|
+
const isSystem = (column) => systemKeys.has(declaredUuidKey(column.table, column.column));
|
|
9682
|
+
const system = convert.filter(isSystem);
|
|
9683
|
+
if (system.length === 0) return {
|
|
9684
|
+
convert,
|
|
9685
|
+
skipBlockedPartner
|
|
9686
|
+
};
|
|
9687
|
+
let reason;
|
|
9688
|
+
const blockedSystem = blocked.find(isSystem);
|
|
9689
|
+
const blockedTenant = blocked.find((column) => !isSystem(column) && column.column === "tenant_id");
|
|
9690
|
+
if (blockedSystem) reason = `${blockedSystem.table}.${blockedSystem.column} is not convertible`;
|
|
9691
|
+
else if (blockedTenant) reason = `application tenant column ${blockedTenant.table}.${blockedTenant.column} is not convertible (non-UUID tenants are still in use)`;
|
|
9692
|
+
else {
|
|
9693
|
+
const { rows } = await db.query(`SELECT data_type FROM information_schema.columns
|
|
9694
|
+
WHERE table_schema = 'public' AND table_name = '_smrt_changes'
|
|
9695
|
+
AND column_name = 'created_at'`);
|
|
9696
|
+
if (rows[0]?.data_type === "timestamp without time zone") reason = "_smrt_changes.created_at is still timezone-naive; run the audited system timestamp migration (smrt db:migrate --postgres-timestamp-legacy-timezone UTC) first";
|
|
9697
|
+
}
|
|
9698
|
+
if (!reason) return {
|
|
9699
|
+
convert,
|
|
9700
|
+
skipBlockedPartner
|
|
9701
|
+
};
|
|
9702
|
+
return {
|
|
9703
|
+
convert: convert.filter((column) => !isSystem(column)),
|
|
9704
|
+
skipBlockedPartner: [...skipBlockedPartner, ...system.map((column) => ({
|
|
9705
|
+
table: column.table,
|
|
9706
|
+
column: column.column,
|
|
9707
|
+
reason: `system tenant columns convert together; ${reason}`
|
|
9708
|
+
}))]
|
|
9709
|
+
};
|
|
9710
|
+
}
|
|
9660
9711
|
/**
|
|
9661
9712
|
* Discover + load the SMRT manifest (cwd-relative, exactly like `db:diff`) and
|
|
9662
9713
|
* return the set of `${table}|${column}` keys the schema declares as native
|
|
@@ -9673,6 +9724,7 @@ async function loadDeclaredUuidColumns() {
|
|
|
9673
9724
|
}
|
|
9674
9725
|
try {
|
|
9675
9726
|
const declared = buildDeclaredUuidColumnSet(ObjectRegistry.getAllSchemasAsDefinitions());
|
|
9727
|
+
if (declared.size > 0) for (const { table, column } of SYSTEM_TABLE_TENANT_UUID_COLUMNS) declared.add(declaredUuidKey(table, column));
|
|
9676
9728
|
if (discoveryFailed && declared.size > 0) console.warn("Manifest discovery partially failed — the declared-UUID set may be INCOMPLETE; some packages may not have been scanned, so some uuid columns could be silently left as TEXT. Resolve the discovery error above and re-run from the project root before trusting the conversion.");
|
|
9677
9729
|
return declared;
|
|
9678
9730
|
} catch (error) {
|
|
@@ -10439,7 +10491,7 @@ async function loadDependencyManifest(packageName, issuerResolverPath) {
|
|
|
10439
10491
|
for (const manifestPath of manifestCandidates) {
|
|
10440
10492
|
if (!existsSync(manifestPath)) continue;
|
|
10441
10493
|
const manifest = await tryLoadManifestFile(manifestPath);
|
|
10442
|
-
if (manifest) return {
|
|
10494
|
+
if (manifest && !isRefusedTestArtifact(manifest, manifestPath)) return {
|
|
10443
10495
|
manifest,
|
|
10444
10496
|
resolverPath: packageJsonPath
|
|
10445
10497
|
};
|
|
@@ -10808,7 +10860,7 @@ var usersProvisionOwnerCommand = {
|
|
|
10808
10860
|
const config = getPackageConfig("cli", DEFAULT_CLI_CONFIG);
|
|
10809
10861
|
if (config.database?.type !== "postgres" || !config.database.url) throw new Error(FAILURE);
|
|
10810
10862
|
const { getDatabase } = await import("@happyvertical/sql");
|
|
10811
|
-
const { provisionPasswordOwner } = await import("./operator-
|
|
10863
|
+
const { provisionPasswordOwner } = await import("./operator-cQG7GjwG.js");
|
|
10812
10864
|
db = await getDatabase({
|
|
10813
10865
|
type: "postgres",
|
|
10814
10866
|
url: config.database.url
|
|
@@ -10925,6 +10977,12 @@ function describeWithheldMigrationAction(action) {
|
|
|
10925
10977
|
* failure here must not fail an otherwise-successful migration.
|
|
10926
10978
|
*/
|
|
10927
10979
|
async function settleDeferredCompatibilityAfterMigrate(db, dbType, { verbose }) {
|
|
10980
|
+
try {
|
|
10981
|
+
await ensureSystemTables(db, dbType);
|
|
10982
|
+
} catch (error) {
|
|
10983
|
+
console.warn(`⚠️ System-table bootstrap did not complete: ${redactDatabaseUrlsInText(error instanceof Error ? error.message : String(error))}`);
|
|
10984
|
+
console.warn(" It will be retried the next time the framework starts.\n");
|
|
10985
|
+
}
|
|
10928
10986
|
try {
|
|
10929
10987
|
const { settled } = await ensureDeferredSystemTableCompatibility(db, dbType);
|
|
10930
10988
|
if (verbose) console.log(settled ? "Deferred system-table compatibility settled (_smrt_jobs, _smrt_job_events)\n" : "Deferred system-table compatibility pending (jobs tables not present)\n");
|
|
@@ -11165,7 +11223,7 @@ var utilityCommands = {
|
|
|
11165
11223
|
description: "Application operations: install, setup, recover, start, stop, doctor, open, backup, export, import, migrate, worker, dev, build (`smrt app help`)",
|
|
11166
11224
|
args: ["[operation]", "[args...]"],
|
|
11167
11225
|
handler: async (args) => {
|
|
11168
|
-
const { runAppCommand } = await import("./cli-
|
|
11226
|
+
const { runAppCommand } = await import("./cli-CtRx1_yP.js").then((n) => n.r);
|
|
11169
11227
|
const code = await runAppCommand(args);
|
|
11170
11228
|
if (code !== 0) process.exitCode = code;
|
|
11171
11229
|
}
|
|
@@ -11275,6 +11333,7 @@ var utilityCommands = {
|
|
|
11275
11333
|
includeExternalBaseClasses: true,
|
|
11276
11334
|
includePrivateMethods: false,
|
|
11277
11335
|
includeStaticMethods: true,
|
|
11336
|
+
outputMode: "explicit",
|
|
11278
11337
|
outputDir: options.output || "src/manifest",
|
|
11279
11338
|
outputName: "test-manifest.json",
|
|
11280
11339
|
generateTypeStub: true,
|
|
@@ -11287,7 +11346,6 @@ var utilityCommands = {
|
|
|
11287
11346
|
const outputDir = resolve(process.cwd(), options.output || "src/manifest");
|
|
11288
11347
|
mkdirSync(outputDir, { recursive: true });
|
|
11289
11348
|
const jsonPath = resolve(outputDir, "test-manifest.json");
|
|
11290
|
-
writeFileSync(jsonPath, JSON.stringify(manifest, null, 2));
|
|
11291
11349
|
const tsContent = `/**
|
|
11292
11350
|
* Test manifest stub
|
|
11293
11351
|
* This file is generated by \`smrt test\`
|
|
@@ -11305,8 +11363,7 @@ export default testManifest;
|
|
|
11305
11363
|
writeFileSync(tsPath, tsContent);
|
|
11306
11364
|
const objectCount = Object.keys(manifest.objects).length;
|
|
11307
11365
|
console.log(`✅ Generated test manifest with ${objectCount} test object(s)`);
|
|
11308
|
-
console.log(`
|
|
11309
|
-
console.log(` Legacy: ${jsonPath}`);
|
|
11366
|
+
console.log(` JSON: ${jsonPath}`);
|
|
11310
11367
|
console.log(` TS: ${tsPath}\n`);
|
|
11311
11368
|
if (!(options["manifest-only"] ?? options.manifestOnly)) {
|
|
11312
11369
|
console.log("🧪 Running tests...\n");
|
|
@@ -11317,6 +11374,8 @@ export default testManifest;
|
|
|
11317
11374
|
"run",
|
|
11318
11375
|
...args
|
|
11319
11376
|
];
|
|
11377
|
+
const { registerActiveTestManifestPath } = await import("@happyvertical/smrt-core/manifest");
|
|
11378
|
+
registerActiveTestManifestPath(process.cwd(), jsonPath);
|
|
11320
11379
|
const proc = spawn(process.execPath, vitestArgs, { stdio: "inherit" });
|
|
11321
11380
|
await new Promise((resolve, reject) => {
|
|
11322
11381
|
proc.on("close", (code) => {
|
|
@@ -11653,6 +11712,8 @@ export default testManifest;
|
|
|
11653
11712
|
include: ["src/**/*.ts"],
|
|
11654
11713
|
exclude: [
|
|
11655
11714
|
"src/**/*.d.ts",
|
|
11715
|
+
"**/*.test.ts",
|
|
11716
|
+
"**/*.spec.ts",
|
|
11656
11717
|
"node_modules/**",
|
|
11657
11718
|
"dist/**"
|
|
11658
11719
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-discovery.d.ts","sourceRoot":"","sources":["../../src/discovery/manifest-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"manifest-discovery.d.ts","sourceRoot":"","sources":["../../src/discovery/manifest-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAQD;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CA0ChD;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAY/B;AAgMD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,kBAAkB,CAAC,CAY7B;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBtE;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC;IACT,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CAyBD"}
|