shopify-app-session-storage-drizzle 0.0.1-security → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of shopify-app-session-storage-drizzle might be problematic. Click here for more details.

Files changed (36) hide show
  1. package/LICENSE.md +9 -0
  2. package/README.md +133 -3
  3. package/build/build.js +1 -0
  4. package/build/cjs/adapters/drizzle-mysql.adapter.js +94 -0
  5. package/build/cjs/adapters/drizzle-postgres.adapter.js +95 -0
  6. package/build/cjs/adapters/drizzle-sqlite.adapter.js +95 -0
  7. package/build/cjs/drizzle.js +13 -0
  8. package/build/ts/adapters/drizzle-mysql.adapter.d.ts +17 -0
  9. package/build/ts/adapters/drizzle-mysql.adapter.d.ts.map +1 -0
  10. package/build/ts/adapters/drizzle-mysql.adapter.js +157 -0
  11. package/build/ts/adapters/drizzle-mysql.adapter.js.map +1 -0
  12. package/build/ts/adapters/drizzle-postgres.adapter.d.ts +17 -0
  13. package/build/ts/adapters/drizzle-postgres.adapter.d.ts.map +1 -0
  14. package/build/ts/adapters/drizzle-postgres.adapter.js +158 -0
  15. package/build/ts/adapters/drizzle-postgres.adapter.js.map +1 -0
  16. package/build/ts/adapters/drizzle-sqlite.adapter.d.ts +17 -0
  17. package/build/ts/adapters/drizzle-sqlite.adapter.d.ts.map +1 -0
  18. package/build/ts/adapters/drizzle-sqlite.adapter.js +158 -0
  19. package/build/ts/adapters/drizzle-sqlite.adapter.js.map +1 -0
  20. package/build/ts/drizzle.d.ts +4 -0
  21. package/build/ts/drizzle.d.ts.map +1 -0
  22. package/build/ts/drizzle.js +10 -0
  23. package/build/ts/drizzle.js.map +1 -0
  24. package/build/ts/schemas/mysql.schema.d.ts +105 -0
  25. package/build/ts/schemas/mysql.schema.d.ts.map +1 -0
  26. package/build/ts/schemas/mysql.schema.js +15 -0
  27. package/build/ts/schemas/mysql.schema.js.map +1 -0
  28. package/build/ts/schemas/postgres.schema.d.ts +105 -0
  29. package/build/ts/schemas/postgres.schema.d.ts.map +1 -0
  30. package/build/ts/schemas/postgres.schema.js +15 -0
  31. package/build/ts/schemas/postgres.schema.js.map +1 -0
  32. package/build/ts/schemas/sqlite.schema.d.ts +106 -0
  33. package/build/ts/schemas/sqlite.schema.d.ts.map +1 -0
  34. package/build/ts/schemas/sqlite.schema.js +15 -0
  35. package/build/ts/schemas/sqlite.schema.js.map +1 -0
  36. package/package.json +61 -3
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DrizzleSessionStoragePostgres = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var shopify_api_1 = require("@shopify/shopify-api");
6
+ var drizzle_orm_1 = require("drizzle-orm");
7
+ var DrizzleSessionStoragePostgres = /** @class */ (function () {
8
+ function DrizzleSessionStoragePostgres(db, sessionTable) {
9
+ this.db = db;
10
+ this.sessionTable = sessionTable;
11
+ }
12
+ DrizzleSessionStoragePostgres.prototype.storeSession = function (session) {
13
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
14
+ var row;
15
+ return tslib_1.__generator(this, function (_a) {
16
+ switch (_a.label) {
17
+ case 0:
18
+ row = this.sessionToRow(session);
19
+ return [4 /*yield*/, this.db
20
+ .insert(this.sessionTable)
21
+ .values(tslib_1.__assign({}, row))
22
+ .onConflictDoUpdate({
23
+ target: this.sessionTable.id,
24
+ set: tslib_1.__assign({}, row),
25
+ })];
26
+ case 1:
27
+ _a.sent();
28
+ return [2 /*return*/, true];
29
+ }
30
+ });
31
+ });
32
+ };
33
+ DrizzleSessionStoragePostgres.prototype.loadSession = function (id) {
34
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
35
+ var row, error_1;
36
+ return tslib_1.__generator(this, function (_a) {
37
+ switch (_a.label) {
38
+ case 0:
39
+ _a.trys.push([0, 2, , 3]);
40
+ return [4 /*yield*/, this.db
41
+ .select()
42
+ .from(this.sessionTable)
43
+ .where((0, drizzle_orm_1.eq)(this.sessionTable.id, id))];
44
+ case 1:
45
+ row = _a.sent();
46
+ if (!row[0]) {
47
+ return [2 /*return*/, undefined];
48
+ }
49
+ return [2 /*return*/, this.rowToSession(row[0])];
50
+ case 2:
51
+ error_1 = _a.sent();
52
+ console.error(error_1);
53
+ return [2 /*return*/, undefined];
54
+ case 3: return [2 /*return*/];
55
+ }
56
+ });
57
+ });
58
+ };
59
+ DrizzleSessionStoragePostgres.prototype.deleteSession = function (id) {
60
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
61
+ var error_2;
62
+ return tslib_1.__generator(this, function (_a) {
63
+ switch (_a.label) {
64
+ case 0:
65
+ _a.trys.push([0, 2, , 3]);
66
+ return [4 /*yield*/, this.db
67
+ .delete(this.sessionTable)
68
+ .where((0, drizzle_orm_1.eq)(this.sessionTable.id, id))];
69
+ case 1:
70
+ _a.sent();
71
+ return [3 /*break*/, 3];
72
+ case 2:
73
+ error_2 = _a.sent();
74
+ console.error(error_2);
75
+ return [2 /*return*/, false];
76
+ case 3: return [2 /*return*/, true];
77
+ }
78
+ });
79
+ });
80
+ };
81
+ DrizzleSessionStoragePostgres.prototype.deleteSessions = function (ids) {
82
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
83
+ var error_3;
84
+ return tslib_1.__generator(this, function (_a) {
85
+ switch (_a.label) {
86
+ case 0:
87
+ _a.trys.push([0, 2, , 3]);
88
+ return [4 /*yield*/, this.db
89
+ .delete(this.sessionTable)
90
+ .where((0, drizzle_orm_1.inArray)(this.sessionTable.id, ids))];
91
+ case 1:
92
+ _a.sent();
93
+ return [2 /*return*/, true];
94
+ case 2:
95
+ error_3 = _a.sent();
96
+ console.error(error_3);
97
+ return [2 /*return*/, false];
98
+ case 3: return [2 /*return*/];
99
+ }
100
+ });
101
+ });
102
+ };
103
+ DrizzleSessionStoragePostgres.prototype.findSessionsByShop = function (shop) {
104
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
105
+ var sessions;
106
+ var _this = this;
107
+ return tslib_1.__generator(this, function (_a) {
108
+ switch (_a.label) {
109
+ case 0: return [4 /*yield*/, this.db
110
+ .select()
111
+ .from(this.sessionTable)
112
+ .where((0, drizzle_orm_1.eq)(this.sessionTable.shop, shop))
113
+ .orderBy((0, drizzle_orm_1.desc)(this.sessionTable.expires))];
114
+ case 1:
115
+ sessions = _a.sent();
116
+ return [2 /*return*/, sessions.map(function (session) { return _this.rowToSession(session); })];
117
+ }
118
+ });
119
+ });
120
+ };
121
+ DrizzleSessionStoragePostgres.prototype.sessionToRow = function (session) {
122
+ var _a;
123
+ return {
124
+ id: session.id,
125
+ shop: session.shop,
126
+ state: session.state,
127
+ isOnline: session.isOnline,
128
+ scope: session.scope,
129
+ expires: session.expires,
130
+ accessToken: session.accessToken,
131
+ userId: (_a = session.onlineAccessInfo) === null || _a === void 0 ? void 0 : _a.associated_user.id,
132
+ };
133
+ };
134
+ DrizzleSessionStoragePostgres.prototype.rowToSession = function (row) {
135
+ var sessionParams = {
136
+ id: row.id,
137
+ shop: row.shop,
138
+ state: row.state,
139
+ isOnline: row.isOnline,
140
+ };
141
+ if (row.expires) {
142
+ sessionParams.expires = row.expires;
143
+ }
144
+ if (row.scope) {
145
+ sessionParams.scope = row.scope;
146
+ }
147
+ if (row.accessToken) {
148
+ sessionParams.accessToken = row.accessToken;
149
+ }
150
+ if (row.userId) {
151
+ sessionParams.onlineAccessInfo = row.userId;
152
+ }
153
+ return shopify_api_1.Session.fromPropertyArray(Object.entries(sessionParams));
154
+ };
155
+ return DrizzleSessionStoragePostgres;
156
+ }());
157
+ exports.DrizzleSessionStoragePostgres = DrizzleSessionStoragePostgres;
158
+ //# sourceMappingURL=drizzle-postgres.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drizzle-postgres.adapter.js","sourceRoot":"","sources":["../../../src/adapters/drizzle-postgres.adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Session } from '@shopify/shopify-api';
2
+ import { SessionStorage } from '@shopify/shopify-app-session-storage';
3
+ import { BaseSQLiteDatabase } from 'drizzle-orm/sqlite-core';
4
+ import { SQLiteSessionTable } from '../schemas/sqlite.schema';
5
+ export declare class DrizzleSessionStorageSQLite implements SessionStorage {
6
+ private readonly db;
7
+ private readonly sessionTable;
8
+ constructor(db: BaseSQLiteDatabase<'sync' | 'async', any, any>, sessionTable: SQLiteSessionTable);
9
+ storeSession(session: Session): Promise<boolean>;
10
+ loadSession(id: string): Promise<Session | undefined>;
11
+ deleteSession(id: string): Promise<boolean>;
12
+ deleteSessions(ids: string[]): Promise<boolean>;
13
+ findSessionsByShop(shop: string): Promise<Session[]>;
14
+ private sessionToRow;
15
+ private rowToSession;
16
+ }
17
+ //# sourceMappingURL=drizzle-sqlite.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drizzle-sqlite.adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/drizzle-sqlite.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAC,cAAc,EAAC,MAAM,sCAAsC,CAAC;AAQpE,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAC;AAE5D,qBAAa,2BAA4B,YAAW,cAAc;IAE9D,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,EAAE,EAAE,kBAAkB,CAAC,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAClD,YAAY,EAAE,kBAAkB;IAGtC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAchD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAmBrD,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAc3C,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAc/C,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAUjE,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,YAAY;CA0BrB"}
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DrizzleSessionStorageSQLite = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var shopify_api_1 = require("@shopify/shopify-api");
6
+ var drizzle_orm_1 = require("drizzle-orm");
7
+ var DrizzleSessionStorageSQLite = /** @class */ (function () {
8
+ function DrizzleSessionStorageSQLite(db, sessionTable) {
9
+ this.db = db;
10
+ this.sessionTable = sessionTable;
11
+ }
12
+ DrizzleSessionStorageSQLite.prototype.storeSession = function (session) {
13
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
14
+ var row;
15
+ return tslib_1.__generator(this, function (_a) {
16
+ switch (_a.label) {
17
+ case 0:
18
+ row = this.sessionToRow(session);
19
+ return [4 /*yield*/, this.db
20
+ .insert(this.sessionTable)
21
+ .values(tslib_1.__assign({}, row))
22
+ .onConflictDoUpdate({
23
+ target: this.sessionTable.id,
24
+ set: tslib_1.__assign({}, row),
25
+ })];
26
+ case 1:
27
+ _a.sent();
28
+ return [2 /*return*/, true];
29
+ }
30
+ });
31
+ });
32
+ };
33
+ DrizzleSessionStorageSQLite.prototype.loadSession = function (id) {
34
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
35
+ var row, error_1;
36
+ return tslib_1.__generator(this, function (_a) {
37
+ switch (_a.label) {
38
+ case 0:
39
+ _a.trys.push([0, 2, , 3]);
40
+ return [4 /*yield*/, this.db
41
+ .select()
42
+ .from(this.sessionTable)
43
+ .where((0, drizzle_orm_1.eq)(this.sessionTable.id, id))];
44
+ case 1:
45
+ row = _a.sent();
46
+ if (!row[0]) {
47
+ return [2 /*return*/, undefined];
48
+ }
49
+ return [2 /*return*/, this.rowToSession(row[0])];
50
+ case 2:
51
+ error_1 = _a.sent();
52
+ console.error(error_1);
53
+ return [2 /*return*/, undefined];
54
+ case 3: return [2 /*return*/];
55
+ }
56
+ });
57
+ });
58
+ };
59
+ DrizzleSessionStorageSQLite.prototype.deleteSession = function (id) {
60
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
61
+ var error_2;
62
+ return tslib_1.__generator(this, function (_a) {
63
+ switch (_a.label) {
64
+ case 0:
65
+ _a.trys.push([0, 2, , 3]);
66
+ return [4 /*yield*/, this.db
67
+ .delete(this.sessionTable)
68
+ .where((0, drizzle_orm_1.eq)(this.sessionTable.id, id))];
69
+ case 1:
70
+ _a.sent();
71
+ return [3 /*break*/, 3];
72
+ case 2:
73
+ error_2 = _a.sent();
74
+ console.error(error_2);
75
+ return [2 /*return*/, false];
76
+ case 3: return [2 /*return*/, true];
77
+ }
78
+ });
79
+ });
80
+ };
81
+ DrizzleSessionStorageSQLite.prototype.deleteSessions = function (ids) {
82
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
83
+ var error_3;
84
+ return tslib_1.__generator(this, function (_a) {
85
+ switch (_a.label) {
86
+ case 0:
87
+ _a.trys.push([0, 2, , 3]);
88
+ return [4 /*yield*/, this.db
89
+ .delete(this.sessionTable)
90
+ .where((0, drizzle_orm_1.inArray)(this.sessionTable.id, ids))];
91
+ case 1:
92
+ _a.sent();
93
+ return [2 /*return*/, true];
94
+ case 2:
95
+ error_3 = _a.sent();
96
+ console.error(error_3);
97
+ return [2 /*return*/, false];
98
+ case 3: return [2 /*return*/];
99
+ }
100
+ });
101
+ });
102
+ };
103
+ DrizzleSessionStorageSQLite.prototype.findSessionsByShop = function (shop) {
104
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
105
+ var sessions;
106
+ var _this = this;
107
+ return tslib_1.__generator(this, function (_a) {
108
+ switch (_a.label) {
109
+ case 0: return [4 /*yield*/, this.db
110
+ .select()
111
+ .from(this.sessionTable)
112
+ .where((0, drizzle_orm_1.eq)(this.sessionTable.shop, shop))
113
+ .orderBy((0, drizzle_orm_1.desc)(this.sessionTable.expires))];
114
+ case 1:
115
+ sessions = _a.sent();
116
+ return [2 /*return*/, sessions.map(function (session) { return _this.rowToSession(session); })];
117
+ }
118
+ });
119
+ });
120
+ };
121
+ DrizzleSessionStorageSQLite.prototype.sessionToRow = function (session) {
122
+ var _a;
123
+ return {
124
+ id: session.id,
125
+ shop: session.shop,
126
+ state: session.state,
127
+ isOnline: session.isOnline,
128
+ scope: session.scope,
129
+ expires: session.expires ? session.expires.toISOString() : null,
130
+ accessToken: session.accessToken,
131
+ userId: (_a = session.onlineAccessInfo) === null || _a === void 0 ? void 0 : _a.associated_user.id,
132
+ };
133
+ };
134
+ DrizzleSessionStorageSQLite.prototype.rowToSession = function (row) {
135
+ var sessionParams = {
136
+ id: row.id,
137
+ shop: row.shop,
138
+ state: row.state,
139
+ isOnline: row.isOnline,
140
+ };
141
+ if (row.expires) {
142
+ sessionParams.expires = new Date(row.expires);
143
+ }
144
+ if (row.scope) {
145
+ sessionParams.scope = row.scope;
146
+ }
147
+ if (row.accessToken) {
148
+ sessionParams.accessToken = row.accessToken;
149
+ }
150
+ if (row.userId) {
151
+ sessionParams.onlineAccessInfo = Number(row.userId);
152
+ }
153
+ return shopify_api_1.Session.fromPropertyArray(Object.entries(sessionParams));
154
+ };
155
+ return DrizzleSessionStorageSQLite;
156
+ }());
157
+ exports.DrizzleSessionStorageSQLite = DrizzleSessionStorageSQLite;
158
+ //# sourceMappingURL=drizzle-sqlite.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drizzle-sqlite.adapter.js","sourceRoot":"","sources":["../../../src/adapters/drizzle-sqlite.adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { DrizzleSessionStoragePostgres } from './adapters/drizzle-postgres.adapter';
2
+ export { DrizzleSessionStorageSQLite } from './adapters/drizzle-sqlite.adapter';
3
+ export { DrizzleSessionStorageMySQL } from './adapters/drizzle-mysql.adapter';
4
+ //# sourceMappingURL=drizzle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drizzle.d.ts","sourceRoot":"","sources":["../../src/drizzle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,6BAA6B,EAAC,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAC,2BAA2B,EAAC,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAC,0BAA0B,EAAC,MAAM,kCAAkC,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DrizzleSessionStorageMySQL = exports.DrizzleSessionStorageSQLite = exports.DrizzleSessionStoragePostgres = void 0;
4
+ var drizzle_postgres_adapter_1 = require("./adapters/drizzle-postgres.adapter");
5
+ Object.defineProperty(exports, "DrizzleSessionStoragePostgres", { enumerable: true, get: function () { return drizzle_postgres_adapter_1.DrizzleSessionStoragePostgres; } });
6
+ var drizzle_sqlite_adapter_1 = require("./adapters/drizzle-sqlite.adapter");
7
+ Object.defineProperty(exports, "DrizzleSessionStorageSQLite", { enumerable: true, get: function () { return drizzle_sqlite_adapter_1.DrizzleSessionStorageSQLite; } });
8
+ var drizzle_mysql_adapter_1 = require("./adapters/drizzle-mysql.adapter");
9
+ Object.defineProperty(exports, "DrizzleSessionStorageMySQL", { enumerable: true, get: function () { return drizzle_mysql_adapter_1.DrizzleSessionStorageMySQL; } });
10
+ //# sourceMappingURL=drizzle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drizzle.js","sourceRoot":"","sources":["../../src/drizzle.ts"],"names":[],"mappings":";;;AAAA,gFAAkF;AAA1E,yIAAA,6BAA6B,OAAA;AACrC,4EAA8E;AAAtE,qIAAA,2BAA2B,OAAA;AACnC,0EAA4E;AAApE,mIAAA,0BAA0B,OAAA"}
@@ -0,0 +1,105 @@
1
+ export declare const sessionTable: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
2
+ name: string;
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/mysql-core").MySqlColumn<{
6
+ name: "id";
7
+ tableName: string;
8
+ dataType: "string";
9
+ columnType: "MySqlVarChar";
10
+ data: string;
11
+ driverParam: string | number;
12
+ notNull: true;
13
+ hasDefault: false;
14
+ enumValues: [string, ...string[]];
15
+ baseColumn: never;
16
+ }, object>;
17
+ shop: import("drizzle-orm/mysql-core").MySqlColumn<{
18
+ name: "shop";
19
+ tableName: string;
20
+ dataType: "string";
21
+ columnType: "MySqlText";
22
+ data: string;
23
+ driverParam: string;
24
+ notNull: true;
25
+ hasDefault: false;
26
+ enumValues: [string, ...string[]];
27
+ baseColumn: never;
28
+ }, object>;
29
+ state: import("drizzle-orm/mysql-core").MySqlColumn<{
30
+ name: "state";
31
+ tableName: string;
32
+ dataType: "string";
33
+ columnType: "MySqlText";
34
+ data: string;
35
+ driverParam: string;
36
+ notNull: true;
37
+ hasDefault: false;
38
+ enumValues: [string, ...string[]];
39
+ baseColumn: never;
40
+ }, object>;
41
+ isOnline: import("drizzle-orm/mysql-core").MySqlColumn<{
42
+ name: "isOnline";
43
+ tableName: string;
44
+ dataType: "boolean";
45
+ columnType: "MySqlBoolean";
46
+ data: boolean;
47
+ driverParam: number | boolean;
48
+ notNull: true;
49
+ hasDefault: true;
50
+ enumValues: undefined;
51
+ baseColumn: never;
52
+ }, object>;
53
+ scope: import("drizzle-orm/mysql-core").MySqlColumn<{
54
+ name: "scope";
55
+ tableName: string;
56
+ dataType: "string";
57
+ columnType: "MySqlText";
58
+ data: string;
59
+ driverParam: string;
60
+ notNull: false;
61
+ hasDefault: false;
62
+ enumValues: [string, ...string[]];
63
+ baseColumn: never;
64
+ }, object>;
65
+ expires: import("drizzle-orm/mysql-core").MySqlColumn<{
66
+ name: "expires";
67
+ tableName: string;
68
+ dataType: "date";
69
+ columnType: "MySqlTimestamp";
70
+ data: Date;
71
+ driverParam: string | number;
72
+ notNull: false;
73
+ hasDefault: false;
74
+ enumValues: undefined;
75
+ baseColumn: never;
76
+ }, object>;
77
+ accessToken: import("drizzle-orm/mysql-core").MySqlColumn<{
78
+ name: "accessToken";
79
+ tableName: string;
80
+ dataType: "string";
81
+ columnType: "MySqlText";
82
+ data: string;
83
+ driverParam: string;
84
+ notNull: false;
85
+ hasDefault: false;
86
+ enumValues: [string, ...string[]];
87
+ baseColumn: never;
88
+ }, object>;
89
+ userId: import("drizzle-orm/mysql-core").MySqlColumn<{
90
+ name: "userId";
91
+ tableName: string;
92
+ dataType: "number";
93
+ columnType: "MySqlBigInt53";
94
+ data: number;
95
+ driverParam: string | number;
96
+ notNull: false;
97
+ hasDefault: false;
98
+ enumValues: undefined;
99
+ baseColumn: never;
100
+ }, object>;
101
+ };
102
+ dialect: "mysql";
103
+ }>;
104
+ export type MySQLSessionTable = typeof sessionTable;
105
+ //# sourceMappingURL=mysql.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/mysql.schema.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASvB,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,OAAO,YAAY,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sessionTable = void 0;
4
+ var mysql_core_1 = require("drizzle-orm/mysql-core");
5
+ exports.sessionTable = (0, mysql_core_1.mysqlTable)('session', {
6
+ id: (0, mysql_core_1.varchar)('id', { length: 255 }).primaryKey(),
7
+ shop: (0, mysql_core_1.text)('shop').notNull(),
8
+ state: (0, mysql_core_1.text)('state').notNull(),
9
+ isOnline: (0, mysql_core_1.boolean)('isOnline').default(false).notNull(),
10
+ scope: (0, mysql_core_1.text)('scope'),
11
+ expires: (0, mysql_core_1.timestamp)('expires', { mode: 'date' }),
12
+ accessToken: (0, mysql_core_1.text)('accessToken'),
13
+ userId: (0, mysql_core_1.bigint)('userId', { mode: 'number' }),
14
+ });
15
+ //# sourceMappingURL=mysql.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql.schema.js","sourceRoot":"","sources":["../../../src/schemas/mysql.schema.ts"],"names":[],"mappings":";;;AAAA,qDAOgC;AAEnB,QAAA,YAAY,GAAG,IAAA,uBAAU,EAAC,SAAmB,EAAE;IAC1D,EAAE,EAAE,IAAA,oBAAO,EAAC,IAAI,EAAE,EAAC,MAAM,EAAE,GAAG,EAAC,CAAC,CAAC,UAAU,EAAE;IAC7C,IAAI,EAAE,IAAA,iBAAI,EAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,KAAK,EAAE,IAAA,iBAAI,EAAC,OAAO,CAAC,CAAC,OAAO,EAAE;IAC9B,QAAQ,EAAE,IAAA,oBAAO,EAAC,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE;IACtD,KAAK,EAAE,IAAA,iBAAI,EAAC,OAAO,CAAC;IACpB,OAAO,EAAE,IAAA,sBAAS,EAAC,SAAS,EAAE,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;IAC7C,WAAW,EAAE,IAAA,iBAAI,EAAC,aAAa,CAAC;IAChC,MAAM,EAAE,IAAA,mBAAM,EAAC,QAAQ,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC;CAC3C,CAAC,CAAC"}
@@ -0,0 +1,105 @@
1
+ export declare const sessionTable: import("drizzle-orm/pg-core").PgTableWithColumns<{
2
+ name: string;
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/pg-core").PgColumn<{
6
+ name: "id";
7
+ tableName: string;
8
+ dataType: "string";
9
+ columnType: "PgText";
10
+ data: string;
11
+ driverParam: string;
12
+ notNull: true;
13
+ hasDefault: false;
14
+ enumValues: [string, ...string[]];
15
+ baseColumn: never;
16
+ }, {}, {}>;
17
+ shop: import("drizzle-orm/pg-core").PgColumn<{
18
+ name: "shop";
19
+ tableName: string;
20
+ dataType: "string";
21
+ columnType: "PgText";
22
+ data: string;
23
+ driverParam: string;
24
+ notNull: true;
25
+ hasDefault: false;
26
+ enumValues: [string, ...string[]];
27
+ baseColumn: never;
28
+ }, {}, {}>;
29
+ state: import("drizzle-orm/pg-core").PgColumn<{
30
+ name: "state";
31
+ tableName: string;
32
+ dataType: "string";
33
+ columnType: "PgText";
34
+ data: string;
35
+ driverParam: string;
36
+ notNull: true;
37
+ hasDefault: false;
38
+ enumValues: [string, ...string[]];
39
+ baseColumn: never;
40
+ }, {}, {}>;
41
+ isOnline: import("drizzle-orm/pg-core").PgColumn<{
42
+ name: "isOnline";
43
+ tableName: string;
44
+ dataType: "boolean";
45
+ columnType: "PgBoolean";
46
+ data: boolean;
47
+ driverParam: boolean;
48
+ notNull: true;
49
+ hasDefault: true;
50
+ enumValues: undefined;
51
+ baseColumn: never;
52
+ }, {}, {}>;
53
+ scope: import("drizzle-orm/pg-core").PgColumn<{
54
+ name: "scope";
55
+ tableName: string;
56
+ dataType: "string";
57
+ columnType: "PgText";
58
+ data: string;
59
+ driverParam: string;
60
+ notNull: false;
61
+ hasDefault: false;
62
+ enumValues: [string, ...string[]];
63
+ baseColumn: never;
64
+ }, {}, {}>;
65
+ expires: import("drizzle-orm/pg-core").PgColumn<{
66
+ name: "expires";
67
+ tableName: string;
68
+ dataType: "date";
69
+ columnType: "PgTimestamp";
70
+ data: Date;
71
+ driverParam: string;
72
+ notNull: false;
73
+ hasDefault: false;
74
+ enumValues: undefined;
75
+ baseColumn: never;
76
+ }, {}, {}>;
77
+ accessToken: import("drizzle-orm/pg-core").PgColumn<{
78
+ name: "accessToken";
79
+ tableName: string;
80
+ dataType: "string";
81
+ columnType: "PgText";
82
+ data: string;
83
+ driverParam: string;
84
+ notNull: false;
85
+ hasDefault: false;
86
+ enumValues: [string, ...string[]];
87
+ baseColumn: never;
88
+ }, {}, {}>;
89
+ userId: import("drizzle-orm/pg-core").PgColumn<{
90
+ name: "userId";
91
+ tableName: string;
92
+ dataType: "number";
93
+ columnType: "PgBigInt53";
94
+ data: number;
95
+ driverParam: string | number;
96
+ notNull: false;
97
+ hasDefault: false;
98
+ enumValues: undefined;
99
+ baseColumn: never;
100
+ }, {}, {}>;
101
+ };
102
+ dialect: "pg";
103
+ }>;
104
+ export type PostgresSessionTable = typeof sessionTable;
105
+ //# sourceMappingURL=postgres.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/postgres.schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASvB,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,OAAO,YAAY,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sessionTable = void 0;
4
+ var pg_core_1 = require("drizzle-orm/pg-core");
5
+ exports.sessionTable = (0, pg_core_1.pgTable)('session', {
6
+ id: (0, pg_core_1.text)('id').primaryKey(),
7
+ shop: (0, pg_core_1.text)('shop').notNull(),
8
+ state: (0, pg_core_1.text)('state').notNull(),
9
+ isOnline: (0, pg_core_1.boolean)('isOnline').default(false).notNull(),
10
+ scope: (0, pg_core_1.text)('scope'),
11
+ expires: (0, pg_core_1.timestamp)('expires', { mode: 'date' }),
12
+ accessToken: (0, pg_core_1.text)('accessToken'),
13
+ userId: (0, pg_core_1.bigint)('userId', { mode: 'number' }),
14
+ });
15
+ //# sourceMappingURL=postgres.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres.schema.js","sourceRoot":"","sources":["../../../src/schemas/postgres.schema.ts"],"names":[],"mappings":";;;AAAA,+CAA8E;AAEjE,QAAA,YAAY,GAAG,IAAA,iBAAO,EAAC,SAAmB,EAAE;IACvD,EAAE,EAAE,IAAA,cAAI,EAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAC3B,IAAI,EAAE,IAAA,cAAI,EAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,KAAK,EAAE,IAAA,cAAI,EAAC,OAAO,CAAC,CAAC,OAAO,EAAE;IAC9B,QAAQ,EAAE,IAAA,iBAAO,EAAC,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE;IACtD,KAAK,EAAE,IAAA,cAAI,EAAC,OAAO,CAAC;IACpB,OAAO,EAAE,IAAA,mBAAS,EAAC,SAAS,EAAE,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;IAC7C,WAAW,EAAE,IAAA,cAAI,EAAC,aAAa,CAAC;IAChC,MAAM,EAAE,IAAA,gBAAM,EAAC,QAAQ,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC;CAC3C,CAAC,CAAC"}