codebase-models 3.0.7 → 3.0.9

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/index.d.ts CHANGED
@@ -79,5 +79,6 @@ import Package from "./src/models/Package";
79
79
  import Invitation from "./src/models/Invitation";
80
80
  import Thread from "./src/models/Thread";
81
81
  import ThreadMessage from "./src/models/ThreadMessage";
82
+ import Provider from "./src/models/Provider";
82
83
  export declare function connect(uri: string, options?: mongoose.ConnectOptions | undefined): Promise<typeof mongoose>;
83
- export { generateRandomIID, RolesConstants, Client, ClientReportsTemp, Report, Test, TestSequentialValue, User, AppEvent, Announcement, ClientAdditionalRevenue, ClientLearning, ClientLinks, ClientNextStep, ClientNote, ClientRetention, ClientStrategy, ClientSurvey, CVRReport, Faq, Feedback, Goal, Hypothesis, HypothesisSheet, LandingPages, NewIdeas, Notification, Page, PageElement, PageTestType, Portfolio, ReadNotification, Role, CustomQuery, SavedSegment, TestTimeline, Snippet, StageInCustomerJourney, Tag, Temp, Tier, Trigger, ClientScript, Audience, Environment, Organization, PrecalculationFilters, BqPreCompiledData, CronData, CronConfig, UserPermission, UserIdentity, UserOrganization, Package, Invitation, Thread, ThreadMessage, };
84
+ export { generateRandomIID, RolesConstants, Client, ClientReportsTemp, Report, Provider, Test, TestSequentialValue, User, AppEvent, Announcement, ClientAdditionalRevenue, ClientLearning, ClientLinks, ClientNextStep, ClientNote, ClientRetention, ClientStrategy, ClientSurvey, CVRReport, Faq, Feedback, Goal, Hypothesis, HypothesisSheet, LandingPages, NewIdeas, Notification, Page, PageElement, PageTestType, Portfolio, ReadNotification, Role, CustomQuery, SavedSegment, TestTimeline, Snippet, StageInCustomerJourney, Tag, Temp, Tier, Trigger, ClientScript, Audience, Environment, Organization, PrecalculationFilters, BqPreCompiledData, CronData, CronConfig, UserPermission, UserIdentity, UserOrganization, Package, Invitation, Thread, ThreadMessage, };
package/dist/index.js CHANGED
@@ -12,8 +12,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.CronData = exports.BqPreCompiledData = exports.PrecalculationFilters = exports.Organization = exports.Environment = exports.Audience = exports.ClientScript = exports.Trigger = exports.Tier = exports.Temp = exports.Tag = exports.StageInCustomerJourney = exports.Snippet = exports.TestTimeline = exports.SavedSegment = exports.CustomQuery = exports.Role = exports.ReadNotification = exports.Portfolio = exports.PageTestType = exports.PageElement = exports.Page = exports.Notification = exports.NewIdeas = exports.LandingPages = exports.HypothesisSheet = exports.Hypothesis = exports.Goal = exports.Feedback = exports.Faq = exports.CVRReport = exports.ClientSurvey = exports.ClientStrategy = exports.ClientRetention = exports.ClientNote = exports.ClientNextStep = exports.ClientLinks = exports.ClientLearning = exports.ClientAdditionalRevenue = exports.Announcement = exports.AppEvent = exports.User = exports.TestSequentialValue = exports.Test = exports.Report = exports.ClientReportsTemp = exports.Client = exports.RolesConstants = exports.generateRandomIID = exports.connect = void 0;
16
- exports.ThreadMessage = exports.Thread = exports.Invitation = exports.Package = exports.UserOrganization = exports.UserIdentity = exports.UserPermission = exports.CronConfig = void 0;
15
+ exports.BqPreCompiledData = exports.PrecalculationFilters = exports.Organization = exports.Environment = exports.Audience = exports.ClientScript = exports.Trigger = exports.Tier = exports.Temp = exports.Tag = exports.StageInCustomerJourney = exports.Snippet = exports.TestTimeline = exports.SavedSegment = exports.CustomQuery = exports.Role = exports.ReadNotification = exports.Portfolio = exports.PageTestType = exports.PageElement = exports.Page = exports.Notification = exports.NewIdeas = exports.LandingPages = exports.HypothesisSheet = exports.Hypothesis = exports.Goal = exports.Feedback = exports.Faq = exports.CVRReport = exports.ClientSurvey = exports.ClientStrategy = exports.ClientRetention = exports.ClientNote = exports.ClientNextStep = exports.ClientLinks = exports.ClientLearning = exports.ClientAdditionalRevenue = exports.Announcement = exports.AppEvent = exports.User = exports.TestSequentialValue = exports.Test = exports.Provider = exports.Report = exports.ClientReportsTemp = exports.Client = exports.RolesConstants = exports.generateRandomIID = exports.connect = void 0;
16
+ exports.ThreadMessage = exports.Thread = exports.Invitation = exports.Package = exports.UserOrganization = exports.UserIdentity = exports.UserPermission = exports.CronConfig = exports.CronData = void 0;
17
17
  const mongoose_1 = __importDefault(require("mongoose"));
18
18
  const Client_1 = __importDefault(require("./src/models/Client"));
19
19
  exports.Client = Client_1.default;
@@ -128,6 +128,8 @@ const Thread_1 = __importDefault(require("./src/models/Thread"));
128
128
  exports.Thread = Thread_1.default;
129
129
  const ThreadMessage_1 = __importDefault(require("./src/models/ThreadMessage"));
130
130
  exports.ThreadMessage = ThreadMessage_1.default;
131
+ const Provider_1 = __importDefault(require("./src/models/Provider"));
132
+ exports.Provider = Provider_1.default;
131
133
  function seedRoles() {
132
134
  return __awaiter(this, void 0, void 0, function* () {
133
135
  const checkRoles = yield Role_1.default.countDocuments();
@@ -0,0 +1,74 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/schematypes" />
19
+ /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
+ /// <reference types="mongoose/types/utility" />
22
+ /// <reference types="mongoose/types/validation" />
23
+ /// <reference types="mongoose/types/virtuals" />
24
+ /// <reference types="mongoose/types/inferschematype" />
25
+ import mongoose, { Document } from "mongoose";
26
+ export declare enum ProviderType {
27
+ SHOPIFY = "shopify",
28
+ BIGQUERY = "bigquery",
29
+ GOOGLE_ANALYTICS = "google_analytics",
30
+ GOOGLE_TAG_MANAGER = "google_tag_manager",
31
+ GOOGLE_ADS = "google_ads",
32
+ GOOGLE_SEARCH_CONSOLE = "google_search_console",
33
+ GOOGLE_SHEETS = "google_sheets",
34
+ GOOGLE_DOCS = "google_docs",
35
+ GOOGLE_DRIVE = "google_drive",
36
+ GOOGLE_MAIL = "google_mail",
37
+ GOOGLE_CALENDAR = "google_calendar"
38
+ }
39
+ export interface IShopifyMetadata {
40
+ apiKey: string;
41
+ apiSecretKey: string;
42
+ hostName: string;
43
+ apiVersion?: string;
44
+ }
45
+ export interface IBigQueryMetadata {
46
+ projectId: string;
47
+ credentials: {
48
+ type?: string;
49
+ project_id?: string;
50
+ private_key_id?: string;
51
+ private_key?: string;
52
+ client_email?: string;
53
+ client_id?: string;
54
+ auth_uri?: string;
55
+ token_uri?: string;
56
+ auth_provider_x509_cert_url?: string;
57
+ client_x509_cert_url?: string;
58
+ };
59
+ datasetId?: string;
60
+ location?: string;
61
+ }
62
+ export type ProviderMetadata = IShopifyMetadata | IBigQueryMetadata | mongoose.Schema.Types.Mixed;
63
+ export interface IProvider extends Document {
64
+ iid: string;
65
+ name: string;
66
+ providerType: ProviderType | string;
67
+ client: mongoose.Schema.Types.ObjectId;
68
+ user: mongoose.Schema.Types.ObjectId;
69
+ organizationId?: mongoose.Schema.Types.ObjectId;
70
+ metadata?: ProviderMetadata;
71
+ active: boolean;
72
+ }
73
+ declare const Provider: mongoose.Model<any, {}, {}, {}, any, any>;
74
+ export default Provider;
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.ProviderType = void 0;
27
+ const mongoose_1 = __importStar(require("mongoose"));
28
+ const constant_1 = require("../constant");
29
+ // Provider type enum
30
+ var ProviderType;
31
+ (function (ProviderType) {
32
+ ProviderType["SHOPIFY"] = "shopify";
33
+ ProviderType["BIGQUERY"] = "bigquery";
34
+ ProviderType["GOOGLE_ANALYTICS"] = "google_analytics";
35
+ ProviderType["GOOGLE_TAG_MANAGER"] = "google_tag_manager";
36
+ ProviderType["GOOGLE_ADS"] = "google_ads";
37
+ ProviderType["GOOGLE_SEARCH_CONSOLE"] = "google_search_console";
38
+ ProviderType["GOOGLE_SHEETS"] = "google_sheets";
39
+ ProviderType["GOOGLE_DOCS"] = "google_docs";
40
+ ProviderType["GOOGLE_DRIVE"] = "google_drive";
41
+ ProviderType["GOOGLE_MAIL"] = "google_mail";
42
+ ProviderType["GOOGLE_CALENDAR"] = "google_calendar";
43
+ // Add more provider types as needed
44
+ })(ProviderType || (exports.ProviderType = ProviderType = {}));
45
+ const ProviderSchema = new mongoose_1.Schema({
46
+ iid: {
47
+ type: String,
48
+ required: true,
49
+ trim: true,
50
+ unique: true,
51
+ default: () => (0, constant_1.generateRandomIID)(), // ✅ auto-generate always
52
+ },
53
+ name: {
54
+ type: String,
55
+ required: true,
56
+ trim: true,
57
+ },
58
+ providerType: {
59
+ type: String,
60
+ required: true,
61
+ enum: Object.values(ProviderType),
62
+ lowercase: true,
63
+ trim: true,
64
+ },
65
+ client: {
66
+ type: mongoose_1.default.Schema.Types.ObjectId,
67
+ ref: "client",
68
+ required: true,
69
+ },
70
+ user: {
71
+ type: mongoose_1.default.Schema.Types.ObjectId,
72
+ ref: "user",
73
+ required: true,
74
+ },
75
+ organizationId: {
76
+ type: mongoose_1.default.Schema.Types.ObjectId,
77
+ ref: "organization",
78
+ default: null,
79
+ },
80
+ metadata: {
81
+ type: mongoose_1.default.Schema.Types.Mixed,
82
+ default: null,
83
+ // Provider-specific validation can be added via pre-save hooks if needed
84
+ },
85
+ active: {
86
+ type: Boolean,
87
+ default: true,
88
+ },
89
+ }, {
90
+ timestamps: true,
91
+ });
92
+ // Indexes for common query patterns
93
+ ProviderSchema.index({ providerType: 1, client: 1 });
94
+ ProviderSchema.index({ providerType: 1, active: 1 });
95
+ ProviderSchema.index({ client: 1, active: 1 });
96
+ ProviderSchema.index({ user: 1 });
97
+ const Provider = mongoose_1.default.models.provider || (0, mongoose_1.model)("provider", ProviderSchema);
98
+ exports.default = Provider;
@@ -35,9 +35,6 @@ export interface IUser extends Document {
35
35
  twoFactor: boolean;
36
36
  emailVerified: boolean;
37
37
  resetLink: string;
38
- bigqueryToken: string;
39
- expirybqToken: string;
40
- refreshToken: string;
41
38
  createdAt: Date;
42
39
  updatedAt: Date;
43
40
  isSSOUser: boolean;
@@ -37,9 +37,9 @@ const UserSchema = new mongoose_1.Schema({
37
37
  twoFactor: { type: Boolean, default: false },
38
38
  emailVerified: { type: Boolean, default: false },
39
39
  resetLink: String,
40
- bigqueryToken: String,
41
- expirybqToken: String,
42
- refreshToken: String,
40
+ // bigqueryToken: String,
41
+ // expirybqToken: String,
42
+ // refreshToken: String,
43
43
  isSSOUser: { type: Boolean, default: false },
44
44
  role: { type: [mongoose_1.default.Schema.Types.ObjectId], ref: "role", default: null },
45
45
  }, { timestamps: true });
package/index.ts CHANGED
@@ -56,6 +56,7 @@ import Package from "./src/models/Package";
56
56
  import Invitation from "./src/models/Invitation";
57
57
  import Thread from "./src/models/Thread";
58
58
  import ThreadMessage from "./src/models/ThreadMessage";
59
+ import Provider from "./src/models/Provider";
59
60
  async function seedRoles() {
60
61
  const checkRoles = await Role.countDocuments();
61
62
  if (checkRoles < RolesConstants.length) {
@@ -109,6 +110,7 @@ export {
109
110
  Client,
110
111
  ClientReportsTemp,
111
112
  Report,
113
+ Provider,
112
114
  Test,
113
115
  TestSequentialValue,
114
116
  User,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codebase-models",
3
- "version": "3.0.7",
3
+ "version": "3.0.9",
4
4
  "description": "Common models for codebase",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -0,0 +1,120 @@
1
+ import mongoose, { Document, Schema, model } from "mongoose";
2
+ import { generateRandomIID } from "../constant";
3
+
4
+ // Provider type enum
5
+ export enum ProviderType {
6
+ SHOPIFY = "shopify",
7
+ BIGQUERY = "bigquery",
8
+ GOOGLE_ANALYTICS = "google_analytics",
9
+ GOOGLE_TAG_MANAGER = "google_tag_manager",
10
+ GOOGLE_ADS = "google_ads",
11
+ GOOGLE_SEARCH_CONSOLE = "google_search_console",
12
+ GOOGLE_SHEETS = "google_sheets",
13
+ GOOGLE_DOCS = "google_docs",
14
+ GOOGLE_DRIVE = "google_drive",
15
+ GOOGLE_MAIL = "google_mail",
16
+ GOOGLE_CALENDAR = "google_calendar",
17
+ // Add more provider types as needed
18
+ }
19
+
20
+ // Shopify provider metadata interface
21
+ export interface IShopifyMetadata {
22
+ apiKey: string;
23
+ apiSecretKey: string;
24
+ hostName: string;
25
+ apiVersion?: string;
26
+ }
27
+
28
+ // Google BigQuery provider metadata interface
29
+ export interface IBigQueryMetadata {
30
+ projectId: string;
31
+ credentials: {
32
+ type?: string;
33
+ project_id?: string;
34
+ private_key_id?: string;
35
+ private_key?: string;
36
+ client_email?: string;
37
+ client_id?: string;
38
+ auth_uri?: string;
39
+ token_uri?: string;
40
+ auth_provider_x509_cert_url?: string;
41
+ client_x509_cert_url?: string;
42
+ };
43
+ datasetId?: string;
44
+ location?: string;
45
+ }
46
+
47
+ // Union type for all provider metadata
48
+ export type ProviderMetadata = IShopifyMetadata | IBigQueryMetadata | mongoose.Schema.Types.Mixed;
49
+
50
+ export interface IProvider extends Document {
51
+ iid: string;
52
+ name: string;
53
+ providerType: ProviderType | string;
54
+ client: mongoose.Schema.Types.ObjectId;
55
+ user: mongoose.Schema.Types.ObjectId;
56
+ organizationId?: mongoose.Schema.Types.ObjectId;
57
+ metadata?: ProviderMetadata;
58
+ active: boolean;
59
+ }
60
+
61
+ const ProviderSchema = new Schema<IProvider>(
62
+ {
63
+ iid: {
64
+ type: String,
65
+ required: true,
66
+ trim: true,
67
+ unique: true,
68
+ default: () => generateRandomIID(), // ✅ auto-generate always
69
+ },
70
+ name: {
71
+ type: String,
72
+ required: true,
73
+ trim: true,
74
+ },
75
+ providerType: {
76
+ type: String,
77
+ required: true,
78
+ enum: Object.values(ProviderType),
79
+ lowercase: true,
80
+ trim: true,
81
+ },
82
+ client: {
83
+ type: mongoose.Schema.Types.ObjectId,
84
+ ref: "client",
85
+ required: true,
86
+ },
87
+ user: {
88
+ type: mongoose.Schema.Types.ObjectId,
89
+ ref: "user",
90
+ required: true,
91
+ },
92
+ organizationId: {
93
+ type: mongoose.Schema.Types.ObjectId,
94
+ ref: "organization",
95
+ default: null,
96
+ },
97
+ metadata: {
98
+ type: mongoose.Schema.Types.Mixed,
99
+ default: null,
100
+ // Provider-specific validation can be added via pre-save hooks if needed
101
+ },
102
+ active: {
103
+ type: Boolean,
104
+ default: true,
105
+ },
106
+ },
107
+ {
108
+ timestamps: true,
109
+ }
110
+ );
111
+
112
+ // Indexes for common query patterns
113
+ ProviderSchema.index({ providerType: 1, client: 1 });
114
+ ProviderSchema.index({ providerType: 1, active: 1 });
115
+ ProviderSchema.index({ client: 1, active: 1 });
116
+ ProviderSchema.index({ user: 1 });
117
+
118
+ const Provider = mongoose.models.provider || model<IProvider>("provider", ProviderSchema);
119
+
120
+ export default Provider;
@@ -13,9 +13,9 @@ export interface IUser extends Document {
13
13
  twoFactor: boolean;
14
14
  emailVerified: boolean;
15
15
  resetLink: string;
16
- bigqueryToken: string;
17
- expirybqToken: string;
18
- refreshToken: string;
16
+ // bigqueryToken: string;
17
+ // expirybqToken: string;
18
+ // refreshToken: string;
19
19
  createdAt: Date;
20
20
  updatedAt: Date;
21
21
  isSSOUser: boolean;
@@ -35,9 +35,9 @@ const UserSchema = new Schema<IUser>(
35
35
  twoFactor: { type: Boolean, default: false },
36
36
  emailVerified: { type: Boolean, default: false },
37
37
  resetLink: String,
38
- bigqueryToken: String,
39
- expirybqToken: String,
40
- refreshToken: String,
38
+ // bigqueryToken: String,
39
+ // expirybqToken: String,
40
+ // refreshToken: String,
41
41
  isSSOUser: { type: Boolean, default: false },
42
42
  role: { type: [mongoose.Schema.Types.ObjectId], ref: "role", default: null },
43
43
  },