@takaro/db 0.0.29 → 0.0.30

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.
@@ -0,0 +1,4 @@
1
+ import { Knex } from 'knex';
2
+ export declare function up(knex: Knex): Promise<void>;
3
+ export declare function down(knex: Knex): Promise<void>;
4
+ //# sourceMappingURL=20250525135204-ban-reason-length.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20250525135204-ban-reason-length.d.ts","sourceRoot":"","sources":["../../../src/migrations/sql/20250525135204-ban-reason-length.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBlD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAOpD"}
@@ -0,0 +1,30 @@
1
+ export async function up(knex) {
2
+ await knex.schema.alterTable('bans', (table) => {
3
+ table.text('reason').alter();
4
+ });
5
+ await knex.raw(`
6
+ CREATE OR REPLACE FUNCTION truncate_reason()
7
+ RETURNS TRIGGER AS $$
8
+ BEGIN
9
+ IF char_length(NEW.reason) > 10000 THEN
10
+ NEW.reason = left(NEW.reason, 10000);
11
+ END IF;
12
+ RETURN NEW;
13
+ END;
14
+ $$ LANGUAGE plpgsql;
15
+ `);
16
+ await knex.raw(`
17
+ CREATE TRIGGER truncate_reason_trigger
18
+ BEFORE INSERT OR UPDATE ON "bans"
19
+ FOR EACH ROW
20
+ EXECUTE FUNCTION truncate_reason();
21
+ `);
22
+ }
23
+ export async function down(knex) {
24
+ await knex.raw('DROP TRIGGER IF EXISTS truncate_reason_trigger ON "bans"');
25
+ await knex.raw('DROP FUNCTION IF EXISTS truncate_reason()');
26
+ await knex.schema.alterTable('bans', (table) => {
27
+ table.string('reason', 255).alter();
28
+ });
29
+ }
30
+ //# sourceMappingURL=20250525135204-ban-reason-length.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20250525135204-ban-reason-length.js","sourceRoot":"","sources":["../../../src/migrations/sql/20250525135204-ban-reason-length.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;QAC7C,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;GAUd,CAAC,CAAC;IAEH,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;GAKd,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,MAAM,IAAI,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;IAC3E,MAAM,IAAI,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAE5D,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;QAC7C,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Knex } from 'knex';
2
+ export declare function up(knex: Knex): Promise<void>;
3
+ export declare function down(knex: Knex): Promise<void>;
4
+ //# sourceMappingURL=20250605201140-shop-permissions-missing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20250605201140-shop-permissions-missing.d.ts","sourceRoot":"","sources":["../../../src/migrations/sql/20250605201140-shop-permissions-missing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAalD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpD"}
@@ -0,0 +1,18 @@
1
+ export async function up(knex) {
2
+ await knex('permission').insert([
3
+ {
4
+ permission: 'MANAGE_SHOP_LISTINGS',
5
+ description: 'Manage shop listings',
6
+ friendlyName: 'Manage Shop Listings',
7
+ },
8
+ {
9
+ permission: 'MANAGE_SHOP_ORDERS',
10
+ description: 'Manage shop orders, allowing administrative actions on orders not belonging to the user',
11
+ friendlyName: 'Manage Shop Orders',
12
+ },
13
+ ]);
14
+ }
15
+ export async function down(knex) {
16
+ await knex('permission').whereIn('permission', ['MANAGE_SHOP_LISTINGS', 'MANAGE_SHOP_ORDERS']).del();
17
+ }
18
+ //# sourceMappingURL=20250605201140-shop-permissions-missing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20250605201140-shop-permissions-missing.js","sourceRoot":"","sources":["../../../src/migrations/sql/20250605201140-shop-permissions-missing.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;QAC9B;YACE,UAAU,EAAE,sBAAsB;YAClC,WAAW,EAAE,sBAAsB;YACnC,YAAY,EAAE,sBAAsB;SACrC;QACD;YACE,UAAU,EAAE,oBAAoB;YAChC,WAAW,EAAE,yFAAyF;YACtG,YAAY,EAAE,oBAAoB;SACnC;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACvG,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@takaro/db",
3
- "version": "0.0.29",
3
+ "version": "0.0.30",
4
4
  "description": "An opinionated data layer",
5
5
  "main": "dist/main.js",
6
6
  "types": "dist/main.d.ts",
@@ -0,0 +1,35 @@
1
+ import { Knex } from 'knex';
2
+
3
+ export async function up(knex: Knex): Promise<void> {
4
+ await knex.schema.alterTable('bans', (table) => {
5
+ table.text('reason').alter();
6
+ });
7
+
8
+ await knex.raw(`
9
+ CREATE OR REPLACE FUNCTION truncate_reason()
10
+ RETURNS TRIGGER AS $$
11
+ BEGIN
12
+ IF char_length(NEW.reason) > 10000 THEN
13
+ NEW.reason = left(NEW.reason, 10000);
14
+ END IF;
15
+ RETURN NEW;
16
+ END;
17
+ $$ LANGUAGE plpgsql;
18
+ `);
19
+
20
+ await knex.raw(`
21
+ CREATE TRIGGER truncate_reason_trigger
22
+ BEFORE INSERT OR UPDATE ON "bans"
23
+ FOR EACH ROW
24
+ EXECUTE FUNCTION truncate_reason();
25
+ `);
26
+ }
27
+
28
+ export async function down(knex: Knex): Promise<void> {
29
+ await knex.raw('DROP TRIGGER IF EXISTS truncate_reason_trigger ON "bans"');
30
+ await knex.raw('DROP FUNCTION IF EXISTS truncate_reason()');
31
+
32
+ await knex.schema.alterTable('bans', (table) => {
33
+ table.string('reason', 255).alter();
34
+ });
35
+ }
@@ -0,0 +1,20 @@
1
+ import { Knex } from 'knex';
2
+
3
+ export async function up(knex: Knex): Promise<void> {
4
+ await knex('permission').insert([
5
+ {
6
+ permission: 'MANAGE_SHOP_LISTINGS',
7
+ description: 'Manage shop listings',
8
+ friendlyName: 'Manage Shop Listings',
9
+ },
10
+ {
11
+ permission: 'MANAGE_SHOP_ORDERS',
12
+ description: 'Manage shop orders, allowing administrative actions on orders not belonging to the user',
13
+ friendlyName: 'Manage Shop Orders',
14
+ },
15
+ ]);
16
+ }
17
+
18
+ export async function down(knex: Knex): Promise<void> {
19
+ await knex('permission').whereIn('permission', ['MANAGE_SHOP_LISTINGS', 'MANAGE_SHOP_ORDERS']).del();
20
+ }