@happyvertical/smrt-cli 0.51.39 → 0.53.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.
Files changed (56) hide show
  1. package/AGENTS.md +7 -2
  2. package/README.md +22 -0
  3. package/agents/type-drift.md +16 -0
  4. package/dist/{ApiKey-BZmbOTnL-DEwZtcGA.js → ApiKey-BZmbOTnL-d61__hH4.js} +2 -2
  5. package/dist/ApiKeyCollection-Bfb_nw81-BVJ-i1Aw.js +2 -0
  6. package/dist/AuditLogCollection-B1YonCAP-bpq7rM2b.js +2 -0
  7. package/dist/{NostrIdentity-n70E0vck-DiBJPv76.js → NostrIdentity-n70E0vck-CmFPKTaE.js} +3 -3
  8. package/dist/NostrIdentityCollection-Ca74dkaL-C0rNgSy-.js +2 -0
  9. package/dist/{OidcIdentity-K8V4u0CR-B_ek3cPN.js → OidcIdentity-Cb1bxreM-L5LCgsel.js} +3 -3
  10. package/dist/OidcIdentityCollection-TV8VdK69-CUmZ-j4r.js +2 -0
  11. package/dist/ProfileAssetCollection-B9hacUJa-C53RAi1e.js +2 -0
  12. package/dist/{ProfileCollection-DTT4KNpQ-D1RNYfjm.js → ProfileCollection-DuJT7Mum-zuWR2h3v.js} +69 -31
  13. package/dist/ProfileLinkCollection-4uNURz32-Fmbnrmyr.js +2 -0
  14. package/dist/ProfileMetadataCollection-DQhbfEfa-D30yWyzB.js +2 -0
  15. package/dist/{ProfileMetafieldCollection-CMKhVi2I-mh3UgeZA.js → ProfileMetafieldCollection-CoBuM_5G-TNxSMsBJ.js} +1 -1
  16. package/dist/{ProfileRelationshipCollection-DUVgaIqf-CXHrAni4.js → ProfileRelationshipCollection-DUVgaIqf-CKcxS2xW.js} +1 -1
  17. package/dist/{ProfileRelationshipTermCollection-DtA9OM23-Cj4bLTpU.js → ProfileRelationshipTermCollection-DtA9OM23-h-4GhOFl.js} +1 -1
  18. package/dist/{ProfileRelationshipType-BRiRka6t-ICv2cawn.js → ProfileRelationshipType-BRiRka6t-BFgCVe6p.js} +1 -1
  19. package/dist/{ProfileRelationshipTypeCollection-BdXwd7Kf-CaYLxJmh.js → ProfileRelationshipTypeCollection-BdXwd7Kf-Djb3_k5Z.js} +1 -1
  20. package/dist/cli-generator.d.ts.map +1 -1
  21. package/dist/commands/db-diff.d.ts.map +1 -1
  22. package/dist/commands/db-history.d.ts.map +1 -1
  23. package/dist/commands/db-migrate-actions.d.ts +7 -0
  24. package/dist/commands/db-migrate-actions.d.ts.map +1 -1
  25. package/dist/commands/db-parity.d.ts +7 -0
  26. package/dist/commands/db-parity.d.ts.map +1 -1
  27. package/dist/commands/db-qualified-names.d.ts +39 -0
  28. package/dist/commands/db-qualified-names.d.ts.map +1 -0
  29. package/dist/commands/db-status.d.ts.map +1 -1
  30. package/dist/commands/gnode.d.ts.map +1 -1
  31. package/dist/commands/index.d.ts +1 -0
  32. package/dist/commands/index.d.ts.map +1 -1
  33. package/dist/commands/mcp-apps-packaging.d.ts +24 -0
  34. package/dist/commands/mcp-apps-packaging.d.ts.map +1 -0
  35. package/dist/commands/tenant-natural-keys.d.ts +58 -0
  36. package/dist/commands/tenant-natural-keys.d.ts.map +1 -0
  37. package/dist/commands/utilities.d.ts.map +1 -1
  38. package/dist/{commands-C2PjCUio.js → commands-e1tsvozP.js} +650 -22
  39. package/dist/{dist-B3npUhW6.js → dist-8C4XjDhz.js} +151 -6
  40. package/dist/{dist-C8sNOzr2.js → dist-CLA60jwS.js} +4 -4
  41. package/dist/dist-CksLvqnZ.js +1705 -0
  42. package/dist/dist-DtTkpUee.js +3937 -0
  43. package/dist/index.js +17 -11
  44. package/dist/{json-validator-oEN7eUI3.js → json-validator-BiAdsE1O.js} +4 -4
  45. package/dist/{oidcProvisioningPrimitives-0-3n3D6f-yUBRl2DC.js → oidcProvisioningPrimitives-D9OYu5-F-CJ6bTipi.js} +7 -7
  46. package/dist/resolveIdentity-B-PK6RwU-DxJFF8ad.js +2 -0
  47. package/package.json +16 -15
  48. package/dist/ApiKeyCollection-Bfb_nw81-D4pLjDGS.js +0 -2
  49. package/dist/AuditLogCollection-B1YonCAP-w1iOHW4A.js +0 -2
  50. package/dist/NostrIdentityCollection-Ca74dkaL-Ce-O_zQz.js +0 -2
  51. package/dist/OidcIdentityCollection-gnrLoF08-DJI-69Ow.js +0 -2
  52. package/dist/ProfileAssetCollection-CmbeSgDi-BpJ7XXsP.js +0 -2
  53. package/dist/ProfileMetadataCollection-DxX_BJKV-orYFlYii.js +0 -2
  54. package/dist/dist-DsMohSo_.js +0 -1487
  55. package/dist/dist-iMaSv6C_.js +0 -3712
  56. package/dist/resolveIdentity-BrJDCjYi-kdAssLr0.js +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-qualified-names.d.ts","sourceRoot":"","sources":["../../src/commands/db-qualified-names.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAGL,KAAK,yBAAyB,EAC/B,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAQtD,iDAAiD;AACjD,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,yBAAyB,GAAG,IAAI,CAAC;IACzC,6EAA6E;IAC7E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAqBD;;;GAGG;AACH,wBAAsB,4BAA4B,CAChD,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GACnC,OAAO,CAAC,0BAA0B,CAAC,CAoBrC;AAED;;;;;;;;;GASG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,yBAAyB,EACjC,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAClC,MAAM,EAAE,CAmDV;AAQD,8DAA8D;AAC9D,eAAO,MAAM,8BAA8B,EAAE,UAoF5C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"db-status.d.ts","sourceRoot":"","sources":["../../src/commands/db-status.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAwBtD,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAkCF,4EAA4E;AAC5E,KAAK,gBAAgB,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE1D;;;;GAIG;AACH,KAAK,UAAU,GAAG;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,gBAAgB,EAAE,CAAC;CACjE,CAAC;AA2DF,wBAAsB,8BAA8B,CAAC,KAAK,EAAE;IAC1D,EAAE,EAAE,iBAAiB,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CAC7C,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA4DhC;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,YAAY,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3C,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE;YACT,QAAQ,EAAE,MAAM,CAAC;YACjB,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;QACF,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE;YACX,MAAM,EAAE,MAAM,CAAC;YACf,eAAe,EAAE,MAAM,CAAC;YACxB,gBAAgB,EAAE,MAAM,CAAC;SAC1B,CAAC;QACF,QAAQ,CAAC,EAAE;YAAE,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC,CAAC;CACJ,GAAG,WAAW,EAAE,CA0KhB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE;YAAE,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC,CAAC;CACJ,GAAG,WAAW,EAAE,CAyBhB;AAED,eAAO,MAAM,eAAe,EAAE,UAge7B,CAAC"}
1
+ {"version":3,"file":"db-status.d.ts","sourceRoot":"","sources":["../../src/commands/db-status.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAyBtD,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAmCF,4EAA4E;AAC5E,KAAK,gBAAgB,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE1D;;;;GAIG;AACH,KAAK,UAAU,GAAG;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,gBAAgB,EAAE,CAAC;CACjE,CAAC;AA2DF,wBAAsB,8BAA8B,CAAC,KAAK,EAAE;IAC1D,EAAE,EAAE,iBAAiB,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CAC7C,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA4DhC;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,YAAY,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3C,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE;YACT,QAAQ,EAAE,MAAM,CAAC;YACjB,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;QACF,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE;YACX,MAAM,EAAE,MAAM,CAAC;YACf,eAAe,EAAE,MAAM,CAAC;YACxB,gBAAgB,EAAE,MAAM,CAAC;SAC1B,CAAC;QACF,QAAQ,CAAC,EAAE;YAAE,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC,CAAC;CACJ,GAAG,WAAW,EAAE,CA0KhB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE;YAAE,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC,CAAC;CACJ,GAAG,WAAW,EAAE,CAyBhB;AAED,eAAO,MAAM,eAAe,EAAE,UA6e7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"gnode.d.ts","sourceRoot":"","sources":["../../src/commands/gnode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAsBtD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAwHpD,CAAC"}
1
+ {"version":3,"file":"gnode.d.ts","sourceRoot":"","sources":["../../src/commands/gnode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAgEtD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CA+IpD,CAAC"}
@@ -17,6 +17,7 @@ export { generateCommands } from './generate.js';
17
17
  export { gitCommands } from './git.js';
18
18
  export { gnodeCommands } from './gnode.js';
19
19
  export { initCommands } from './init.js';
20
+ export { mcpAppsCommands } from './mcp-apps-packaging.js';
20
21
  export { playgroundCommands } from './playground.js';
21
22
  export { utilityCommands } from './utilities.js';
22
23
  export { workbenchCommands } from './workbench.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { CLICommand } from '../cli-generator.js';
2
+ export interface McpAppsFinding {
3
+ code: string;
4
+ message: string;
5
+ }
6
+ export interface McpAppsValidationResult {
7
+ findings: McpAppsFinding[];
8
+ valid: boolean;
9
+ }
10
+ /** Validate portable plugin files and the optional OpenAI install extension. */
11
+ export declare function validateMcpAppsPackage(rootPath: string): McpAppsValidationResult;
12
+ /**
13
+ * Add the public, credential-free SMRT package route to a generated app.
14
+ * A pre-existing scope route is an explicit consumer decision and must not be
15
+ * silently replaced.
16
+ */
17
+ export declare function configureMcpAppsConsumerRegistry(appRoot: string): void;
18
+ /** Copy the opt-in app route/resources and merge only its declared dependencies. */
19
+ export declare function addMcpAppsRuntime(sourceRoot: string, appRoot: string): void;
20
+ export declare function assertMcpAppsPluginName(name: string): void;
21
+ /** Create the minimal local portable package. It intentionally has no .app.json: registered IDs are host-owned. */
22
+ export declare function scaffoldMcpAppsPackage(rootPath: string, name: string, version?: string): void;
23
+ export declare const mcpAppsCommands: Record<string, CLICommand>;
24
+ //# sourceMappingURL=mcp-apps-packaging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-apps-packaging.d.ts","sourceRoot":"","sources":["../../src/commands/mcp-apps-packaging.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC;CAChB;AAyLD,gFAAgF;AAChF,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,GACf,uBAAuB,CAyIzB;AAUD;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,MAAM,QA+B/D;AAED,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAoBpE;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,QAKnD;AAED,mHAAmH;AACnH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,SAAU,QAiBlB;AAED,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CA6DtD,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Tenant natural-key detector for `db:status`.
3
+ *
4
+ * A tenant-owned table (declared tenant scope, or an undeclared `tenantId`
5
+ * field — `ObjectRegistry.getOwnershipTenantColumn()`) upserts on a
6
+ * tenant-led key such as `(tenant_id, slug, context)`. A live database created
7
+ * before that default can still carry the GLOBAL `(slug, context)` unique:
8
+ * then a second tenant's same-slug save collides with a row it cannot see.
9
+ * Before the save-time ownership guard, `ON CONFLICT … DO UPDATE` rewrote that
10
+ * row's `id` and `tenant_id` (the Anytown Ludis takeover); now the save is
11
+ * refused, and on engines that require an exact ON CONFLICT target the create
12
+ * fails until `smrt db:migrate` swaps the index.
13
+ *
14
+ * Rollout is expand, then contract: `smrt db:migrate` builds the tenant-led
15
+ * unique beside the global one (an `error` until it exists, so db:status exits
16
+ * 1), and the global one stays — reported as a `warning` — until
17
+ * `smrt db:migrate --drop-legacy-natural-key` once no old code is running.
18
+ * Explicit `@smrt({ conflictColumns })` that omit the tenant column are the
19
+ * author's declared contract and are not reported here (the tenancy
20
+ * package's `auditTenantScopedRegistrations()` flags runtime-registered ones).
21
+ */
22
+ /** Live index shape this detector reads (`getTableSchema().indexes`). */
23
+ type LiveIndexLike = {
24
+ name?: string;
25
+ columns?: string[];
26
+ unique?: boolean;
27
+ where?: string;
28
+ };
29
+ /** Live table shape this detector reads. */
30
+ export type LiveTableLike = {
31
+ indexes?: LiveIndexLike[];
32
+ } | null | undefined;
33
+ /**
34
+ * One tenant natural-key finding, shaped as a `db:status` precondition.
35
+ * `global_unique` is an `error` (db:status exits 1): the release that keys
36
+ * the table by tenant needs its migration, and a rollout must not miss it.
37
+ */
38
+ export interface TenantNaturalKeyFinding {
39
+ name: string;
40
+ status: 'warning' | 'error';
41
+ message: string;
42
+ recommendation: string;
43
+ details: {
44
+ className: string;
45
+ tableName: string;
46
+ conflictColumns: string[];
47
+ liveIndex?: string;
48
+ kind: 'global_unique' | 'legacy_global_unique' | 'missing_tenant_unique';
49
+ };
50
+ }
51
+ /**
52
+ * Compare every tenant-owned table's upsert target with its live unique
53
+ * indexes. Tables absent from `liveSchemas` (not created yet, or not
54
+ * introspected) are skipped — the schema diff reports those.
55
+ */
56
+ export declare function checkTenantNaturalKeyUniques(liveSchemas: ReadonlyMap<string, LiveTableLike>): TenantNaturalKeyFinding[];
57
+ export {};
58
+ //# sourceMappingURL=tenant-natural-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-natural-keys.d.ts","sourceRoot":"","sources":["../../src/commands/tenant-natural-keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAKH,yEAAyE;AACzE,KAAK,aAAa,GAAG;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,4CAA4C;AAC5C,MAAM,MAAM,aAAa,GAAG;IAAE,OAAO,CAAC,EAAE,aAAa,EAAE,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,CAAC;AAE7E;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,eAAe,GAAG,sBAAsB,GAAG,uBAAuB,CAAC;KAC1E,CAAC;CACH;AAMD;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,GAC9C,uBAAuB,EAAE,CAwG3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/commands/utilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/commands/utilities.ts"],"names":[],"mappings":"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"}