@spytecgps/nova-orm 1.4.285 → 1.4.286

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.
@@ -23,7 +23,7 @@ export declare class Referral {
23
23
  referrerId: number;
24
24
  /** Denormalised from the referrer — every admin query filters on it. */
25
25
  referrerClientId: number;
26
- /** The code actually used, so reissuing a referrer's code does not rewrite history. */
26
+ /** The code actually used, captured at attribution so later changes cannot rewrite history. */
27
27
  code: string;
28
28
  /** Null for link-only referrals; set only when the referrer emailed an invite. */
29
29
  invitedEmail: string | null;
@@ -1 +1 @@
1
- "use strict";var e=require("../node_modules/tslib/tslib.es6.js"),t=require("typeorm"),r=require("../utils/uuidTransformer.js");exports.Referral=class Referral{id;referrerId;referrerClientId;code;invitedEmail;invitedAt;firstClickAt;attributionExpiresAt;referredClientId;referredUserId;referredEmail;signedUpAt;activatedAt;deviceCount;clockStartedAt;clockPausedAt;clockPausedSeconds;qualifiesAt;qualifiedAt;baseMonthlyAmountCents;billedAmountCents;earnedAmountCents;creditedAt;status;voidReason;voidedAt;parentReferralId;tier;createdAt;updatedAt},e.__decorate([t.PrimaryGeneratedColumn({type:"int",name:"id"}),e.__metadata("design:type",Number)],exports.Referral.prototype,"id",void 0),e.__decorate([t.Column("int",{name:"referrerId"}),e.__metadata("design:type",Number)],exports.Referral.prototype,"referrerId",void 0),e.__decorate([t.Column("int",{name:"referrerClientId"}),e.__metadata("design:type",Number)],exports.Referral.prototype,"referrerClientId",void 0),e.__decorate([t.Column("varchar",{name:"code",length:32}),e.__metadata("design:type",String)],exports.Referral.prototype,"code",void 0),e.__decorate([t.Column("varchar",{name:"invitedEmail",nullable:!0,length:255}),e.__metadata("design:type",String)],exports.Referral.prototype,"invitedEmail",void 0),e.__decorate([t.Column("datetime",{name:"invitedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"invitedAt",void 0),e.__decorate([t.Column("datetime",{name:"firstClickAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"firstClickAt",void 0),e.__decorate([t.Column("datetime",{name:"attributionExpiresAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"attributionExpiresAt",void 0),e.__decorate([t.Column("int",{name:"referredClientId",nullable:!0}),e.__metadata("design:type",Number)],exports.Referral.prototype,"referredClientId",void 0),e.__decorate([t.Column("binary",{name:"referredUserId",length:16,nullable:!0,transformer:r.UUIDTransformer}),e.__metadata("design:type",String)],exports.Referral.prototype,"referredUserId",void 0),e.__decorate([t.Column("varchar",{name:"referredEmail",nullable:!0,length:255}),e.__metadata("design:type",String)],exports.Referral.prototype,"referredEmail",void 0),e.__decorate([t.Column("datetime",{name:"signedUpAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"signedUpAt",void 0),e.__decorate([t.Column("datetime",{name:"activatedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"activatedAt",void 0),e.__decorate([t.Column("int",{name:"deviceCount",default:()=>"'0'"}),e.__metadata("design:type",Number)],exports.Referral.prototype,"deviceCount",void 0),e.__decorate([t.Column("datetime",{name:"clockStartedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"clockStartedAt",void 0),e.__decorate([t.Column("datetime",{name:"clockPausedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"clockPausedAt",void 0),e.__decorate([t.Column("int",{name:"clockPausedSeconds",default:()=>"'0'"}),e.__metadata("design:type",Number)],exports.Referral.prototype,"clockPausedSeconds",void 0),e.__decorate([t.Column("datetime",{name:"qualifiesAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"qualifiesAt",void 0),e.__decorate([t.Column("datetime",{name:"qualifiedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"qualifiedAt",void 0),e.__decorate([t.Column("int",{name:"baseMonthlyAmountCents",nullable:!0}),e.__metadata("design:type",Number)],exports.Referral.prototype,"baseMonthlyAmountCents",void 0),e.__decorate([t.Column("int",{name:"billedAmountCents",default:()=>"'0'"}),e.__metadata("design:type",Number)],exports.Referral.prototype,"billedAmountCents",void 0),e.__decorate([t.Column("int",{name:"earnedAmountCents",nullable:!0}),e.__metadata("design:type",Number)],exports.Referral.prototype,"earnedAmountCents",void 0),e.__decorate([t.Column("datetime",{name:"creditedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"creditedAt",void 0),e.__decorate([t.Column("enum",{enum:["invited","attributed","active","qualified","credited","canceled","voided"],name:"status",default:"invited"}),e.__metadata("design:type",String)],exports.Referral.prototype,"status",void 0),e.__decorate([t.Column("enum",{enum:["refund","cancelled_early","self_referral","fraud","existing_active_customer","referrer_ineligible","attribution_expired","annual_cap_reached"],name:"voidReason",nullable:!0}),e.__metadata("design:type",String)],exports.Referral.prototype,"voidReason",void 0),e.__decorate([t.Column("datetime",{name:"voidedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"voidedAt",void 0),e.__decorate([t.Column("int",{name:"parentReferralId",nullable:!0}),e.__metadata("design:type",Number)],exports.Referral.prototype,"parentReferralId",void 0),e.__decorate([t.Column("tinyint",{name:"tier",default:()=>"'1'"}),e.__metadata("design:type",Number)],exports.Referral.prototype,"tier",void 0),e.__decorate([t.Column("datetime",{name:"createdAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"createdAt",void 0),e.__decorate([t.Column("datetime",{name:"updatedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"updatedAt",void 0),exports.Referral=e.__decorate([t.Index("ixuReferralReferredClient",["referredClientId"],{unique:!0}),t.Index("ixReferralReferrer",["referrerId"],{}),t.Index("ixReferralReferrerClientStatus",["referrerClientId","status"],{}),t.Index("ixReferralCode",["code"],{}),t.Index("ixReferralStatusQualifiesAt",["status","qualifiesAt"],{}),t.Index("ixReferralInvitedEmail",["invitedEmail"],{}),t.Index("ixReferralCreatedAt",["createdAt"],{}),t.Entity("referral",{schema:"nova"})],exports.Referral);
1
+ "use strict";var e=require("../node_modules/tslib/tslib.es6.js"),t=require("typeorm"),r=require("../utils/uuidTransformer.js");exports.Referral=class Referral{id;referrerId;referrerClientId;code;invitedEmail;invitedAt;firstClickAt;attributionExpiresAt;referredClientId;referredUserId;referredEmail;signedUpAt;activatedAt;deviceCount;clockStartedAt;clockPausedAt;clockPausedSeconds;qualifiesAt;qualifiedAt;baseMonthlyAmountCents;billedAmountCents;earnedAmountCents;creditedAt;status;voidReason;voidedAt;parentReferralId;tier;createdAt;updatedAt},e.__decorate([t.PrimaryGeneratedColumn({type:"int",name:"id"}),e.__metadata("design:type",Number)],exports.Referral.prototype,"id",void 0),e.__decorate([t.Column("int",{name:"referrerId"}),e.__metadata("design:type",Number)],exports.Referral.prototype,"referrerId",void 0),e.__decorate([t.Column("int",{name:"referrerClientId"}),e.__metadata("design:type",Number)],exports.Referral.prototype,"referrerClientId",void 0),e.__decorate([t.Column("varchar",{name:"code",length:36}),e.__metadata("design:type",String)],exports.Referral.prototype,"code",void 0),e.__decorate([t.Column("varchar",{name:"invitedEmail",nullable:!0,length:255}),e.__metadata("design:type",String)],exports.Referral.prototype,"invitedEmail",void 0),e.__decorate([t.Column("datetime",{name:"invitedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"invitedAt",void 0),e.__decorate([t.Column("datetime",{name:"firstClickAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"firstClickAt",void 0),e.__decorate([t.Column("datetime",{name:"attributionExpiresAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"attributionExpiresAt",void 0),e.__decorate([t.Column("int",{name:"referredClientId",nullable:!0}),e.__metadata("design:type",Number)],exports.Referral.prototype,"referredClientId",void 0),e.__decorate([t.Column("binary",{name:"referredUserId",length:16,nullable:!0,transformer:r.UUIDTransformer}),e.__metadata("design:type",String)],exports.Referral.prototype,"referredUserId",void 0),e.__decorate([t.Column("varchar",{name:"referredEmail",nullable:!0,length:255}),e.__metadata("design:type",String)],exports.Referral.prototype,"referredEmail",void 0),e.__decorate([t.Column("datetime",{name:"signedUpAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"signedUpAt",void 0),e.__decorate([t.Column("datetime",{name:"activatedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"activatedAt",void 0),e.__decorate([t.Column("int",{name:"deviceCount",default:()=>"'0'"}),e.__metadata("design:type",Number)],exports.Referral.prototype,"deviceCount",void 0),e.__decorate([t.Column("datetime",{name:"clockStartedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"clockStartedAt",void 0),e.__decorate([t.Column("datetime",{name:"clockPausedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"clockPausedAt",void 0),e.__decorate([t.Column("int",{name:"clockPausedSeconds",default:()=>"'0'"}),e.__metadata("design:type",Number)],exports.Referral.prototype,"clockPausedSeconds",void 0),e.__decorate([t.Column("datetime",{name:"qualifiesAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"qualifiesAt",void 0),e.__decorate([t.Column("datetime",{name:"qualifiedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"qualifiedAt",void 0),e.__decorate([t.Column("int",{name:"baseMonthlyAmountCents",nullable:!0}),e.__metadata("design:type",Number)],exports.Referral.prototype,"baseMonthlyAmountCents",void 0),e.__decorate([t.Column("int",{name:"billedAmountCents",default:()=>"'0'"}),e.__metadata("design:type",Number)],exports.Referral.prototype,"billedAmountCents",void 0),e.__decorate([t.Column("int",{name:"earnedAmountCents",nullable:!0}),e.__metadata("design:type",Number)],exports.Referral.prototype,"earnedAmountCents",void 0),e.__decorate([t.Column("datetime",{name:"creditedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"creditedAt",void 0),e.__decorate([t.Column("enum",{enum:["invited","attributed","active","qualified","credited","canceled","voided"],name:"status",default:"invited"}),e.__metadata("design:type",String)],exports.Referral.prototype,"status",void 0),e.__decorate([t.Column("enum",{enum:["refund","cancelled_early","self_referral","fraud","existing_active_customer","referrer_ineligible","attribution_expired","annual_cap_reached"],name:"voidReason",nullable:!0}),e.__metadata("design:type",String)],exports.Referral.prototype,"voidReason",void 0),e.__decorate([t.Column("datetime",{name:"voidedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"voidedAt",void 0),e.__decorate([t.Column("int",{name:"parentReferralId",nullable:!0}),e.__metadata("design:type",Number)],exports.Referral.prototype,"parentReferralId",void 0),e.__decorate([t.Column("tinyint",{name:"tier",default:()=>"'1'"}),e.__metadata("design:type",Number)],exports.Referral.prototype,"tier",void 0),e.__decorate([t.Column("datetime",{name:"createdAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"createdAt",void 0),e.__decorate([t.Column("datetime",{name:"updatedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referral.prototype,"updatedAt",void 0),exports.Referral=e.__decorate([t.Index("ixuReferralReferredClient",["referredClientId"],{unique:!0}),t.Index("ixReferralReferrer",["referrerId"],{}),t.Index("ixReferralReferrerClientStatus",["referrerClientId","status"],{}),t.Index("ixReferralCode",["code"],{}),t.Index("ixReferralStatusQualifiesAt",["status","qualifiesAt"],{}),t.Index("ixReferralInvitedEmail",["invitedEmail"],{}),t.Index("ixReferralCreatedAt",["createdAt"],{}),t.Entity("referral",{schema:"nova"})],exports.Referral);
@@ -19,7 +19,10 @@ export declare class Referrer {
19
19
  /** Billing entity the earned credit accrues to. */
20
20
  clientId: number;
21
21
  userId: string;
22
- /** The `?ref=` value. Encoded user UUID, ~22 chars. */
22
+ /**
23
+ * The `?ref=` value — the canonical form of `userId`, so a code read off a link matches `user.id`
24
+ * on sight with no transform in between.
25
+ */
23
26
  code: string;
24
27
  enabled: boolean;
25
28
  disabledReason: ReferrerDisabledReason | null;
@@ -1 +1 @@
1
- "use strict";var e=require("../node_modules/tslib/tslib.es6.js"),r=require("typeorm"),t=require("../utils/boolToNumberTransformer.js"),a=require("../utils/uuidTransformer.js");exports.Referrer=class Referrer{id;clientId;userId;code;enabled;disabledReason;enrolledAt;createdAt;updatedAt},e.__decorate([r.PrimaryGeneratedColumn({type:"int",name:"id"}),e.__metadata("design:type",Number)],exports.Referrer.prototype,"id",void 0),e.__decorate([r.Column("int",{name:"clientId"}),e.__metadata("design:type",Number)],exports.Referrer.prototype,"clientId",void 0),e.__decorate([r.Column("binary",{name:"userId",length:16,transformer:a.UUIDTransformer}),e.__metadata("design:type",String)],exports.Referrer.prototype,"userId",void 0),e.__decorate([r.Column("varchar",{name:"code",length:32}),e.__metadata("design:type",String)],exports.Referrer.prototype,"code",void 0),e.__decorate([r.Column("tinyint",{name:"enabled",width:1,default:()=>"'1'",transformer:new t.BoolToNumberTransformer}),e.__metadata("design:type",Boolean)],exports.Referrer.prototype,"enabled",void 0),e.__decorate([r.Column("enum",{enum:["enterprise","no_active_subscription","fraud","manual"],name:"disabledReason",nullable:!0}),e.__metadata("design:type",String)],exports.Referrer.prototype,"disabledReason",void 0),e.__decorate([r.Column("datetime",{name:"enrolledAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referrer.prototype,"enrolledAt",void 0),e.__decorate([r.Column("datetime",{name:"createdAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referrer.prototype,"createdAt",void 0),e.__decorate([r.Column("datetime",{name:"updatedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referrer.prototype,"updatedAt",void 0),exports.Referrer=e.__decorate([r.Index("ixuReferrerCode",["code"],{unique:!0}),r.Index("ixuReferrerClientUser",["clientId","userId"],{unique:!0}),r.Index("ixReferrerEnabled",["enabled"],{}),r.Entity("referrer",{schema:"nova"})],exports.Referrer);
1
+ "use strict";var e=require("../node_modules/tslib/tslib.es6.js"),r=require("typeorm"),t=require("../utils/boolToNumberTransformer.js"),a=require("../utils/uuidTransformer.js");exports.Referrer=class Referrer{id;clientId;userId;code;enabled;disabledReason;enrolledAt;createdAt;updatedAt},e.__decorate([r.PrimaryGeneratedColumn({type:"int",name:"id"}),e.__metadata("design:type",Number)],exports.Referrer.prototype,"id",void 0),e.__decorate([r.Column("int",{name:"clientId"}),e.__metadata("design:type",Number)],exports.Referrer.prototype,"clientId",void 0),e.__decorate([r.Column("binary",{name:"userId",length:16,transformer:a.UUIDTransformer}),e.__metadata("design:type",String)],exports.Referrer.prototype,"userId",void 0),e.__decorate([r.Column("varchar",{name:"code",length:36}),e.__metadata("design:type",String)],exports.Referrer.prototype,"code",void 0),e.__decorate([r.Column("tinyint",{name:"enabled",width:1,default:()=>"'1'",transformer:new t.BoolToNumberTransformer}),e.__metadata("design:type",Boolean)],exports.Referrer.prototype,"enabled",void 0),e.__decorate([r.Column("enum",{enum:["enterprise","no_active_subscription","fraud","manual"],name:"disabledReason",nullable:!0}),e.__metadata("design:type",String)],exports.Referrer.prototype,"disabledReason",void 0),e.__decorate([r.Column("datetime",{name:"enrolledAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referrer.prototype,"enrolledAt",void 0),e.__decorate([r.Column("datetime",{name:"createdAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referrer.prototype,"createdAt",void 0),e.__decorate([r.Column("datetime",{name:"updatedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Referrer.prototype,"updatedAt",void 0),exports.Referrer=e.__decorate([r.Index("ixuReferrerCode",["code"],{unique:!0}),r.Index("ixuReferrerClientUser",["clientId","userId"],{unique:!0}),r.Index("ixReferrerEnabled",["enabled"],{}),r.Entity("referrer",{schema:"nova"})],exports.Referrer);
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var _1684483704434AddLowerCaseIndex = require('../1684483704434-addLowerCaseIndex.js');
4
3
  var _1684483705001UpdateSecurityUserViewsV1 = require('../1684483705001-updateSecurityUserViewsV1.js');
4
+ var _1684483704434AddLowerCaseIndex = require('../1684483704434-addLowerCaseIndex.js');
5
5
  var _1684483705002UpdateSecurityUserViewsV2 = require('../1684483705002-updateSecurityUserViewsV2.js');
6
6
  var _1746434400000AddQuickSearchFulltextIndexes = require('../1746434400000-addQuickSearchFulltextIndexes.js');
7
7
 
8
8
 
9
9
 
10
- exports.addLowerCaseIndex1684483704434 = _1684483704434AddLowerCaseIndex.addLowerCaseIndex1684483704434;
11
10
  exports.updateSecurityUserViewsV11684483705001 = _1684483705001UpdateSecurityUserViewsV1.updateSecurityUserViewsV11684483705001;
11
+ exports.addLowerCaseIndex1684483704434 = _1684483704434AddLowerCaseIndex.addLowerCaseIndex1684483704434;
12
12
  exports.updateSecurityUserViewsV21684483705002 = _1684483705002UpdateSecurityUserViewsV2.updateSecurityUserViewsV21684483705002;
13
13
  exports.addQuickSearchFulltextIndexes1746434400000 = _1746434400000AddQuickSearchFulltextIndexes.addQuickSearchFulltextIndexes1746434400000;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spytecgps/nova-orm",
3
- "version": "1.4.285",
3
+ "version": "1.4.286",
4
4
  "description": "ORM with PlanetScale",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
package/schema.sql CHANGED
@@ -1,6 +1,6 @@
1
- -- nova-orm-schema-checksum: b2db16c9d99ac5b0ce893e9312b46a8b
1
+ -- nova-orm-schema-checksum: ce4fd04b483c0b4983f5e09e0bb3faac
2
2
  -- Nova ORM Schema Dump
3
- -- Generated at: 2026-08-09T00:12:57.691Z
3
+ -- Generated at: 2026-08-09T14:38:01.661Z
4
4
 
5
5
  SET FOREIGN_KEY_CHECKS = 0;
6
6
 
@@ -2725,7 +2725,7 @@ CREATE TABLE `referral` (
2725
2725
  `id` int NOT NULL AUTO_INCREMENT,
2726
2726
  `referrerId` int NOT NULL,
2727
2727
  `referrerClientId` int NOT NULL,
2728
- `code` varchar(32) NOT NULL,
2728
+ `code` varchar(36) NOT NULL,
2729
2729
  `invitedEmail` varchar(255) DEFAULT NULL,
2730
2730
  `invitedAt` datetime DEFAULT NULL,
2731
2731
  `firstClickAt` datetime DEFAULT NULL,
@@ -2792,7 +2792,7 @@ CREATE TABLE `referrer` (
2792
2792
  `id` int NOT NULL AUTO_INCREMENT,
2793
2793
  `clientId` int NOT NULL,
2794
2794
  `userId` binary(16) NOT NULL,
2795
- `code` varchar(32) NOT NULL,
2795
+ `code` varchar(36) NOT NULL,
2796
2796
  `enabled` tinyint(1) NOT NULL DEFAULT '1',
2797
2797
  `disabledReason` enum('enterprise','no_active_subscription','fraud','manual') DEFAULT NULL,
2798
2798
  `enrolledAt` datetime DEFAULT NULL,