@outs-tand-ing/postgres 0.2.3 ā 0.2.5
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/modules/timeline/timeline.functions.d.ts +4 -0
- package/dist/modules/timeline/timeline.functions.d.ts.map +1 -1
- package/dist/modules/timeline/timeline.functions.js +8 -1
- package/dist/modules/timeline/timeline.functions.js.map +1 -1
- package/dist/scripts/backup.d.ts +2 -0
- package/dist/scripts/backup.d.ts.map +1 -0
- package/dist/scripts/backup.js +41 -0
- package/dist/scripts/backup.js.map +1 -0
- package/dist/scripts/restore.d.ts +2 -0
- package/dist/scripts/restore.d.ts.map +1 -0
- package/dist/scripts/restore.js +76 -0
- package/dist/scripts/restore.js.map +1 -0
- package/package.json +5 -2
|
@@ -11,4 +11,8 @@ export declare const generateMarkUrl: (params: {
|
|
|
11
11
|
_realFixture?: string;
|
|
12
12
|
level?: MarkLevel;
|
|
13
13
|
}) => string;
|
|
14
|
+
export declare const generateMarkOrder: (params: {
|
|
15
|
+
startingAt?: Date | string | null;
|
|
16
|
+
name?: string | null;
|
|
17
|
+
}) => string;
|
|
14
18
|
//# sourceMappingURL=timeline.functions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.functions.d.ts","sourceRoot":"","sources":["../../../src/modules/timeline/timeline.functions.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;AAGpE,eAAO,MAAM,cAAc,GAAI,QAAQ;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,KAAG,MAY3H,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,QAAQ;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,KAAG,MAW5H,CAAA"}
|
|
1
|
+
{"version":3,"file":"timeline.functions.d.ts","sourceRoot":"","sources":["../../../src/modules/timeline/timeline.functions.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;AAGpE,eAAO,MAAM,cAAc,GAAI,QAAQ;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,KAAG,MAY3H,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,QAAQ;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,KAAG,MAW5H,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,QAAQ;IACxC,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IACjC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB,KAAG,MAKH,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { generateHashId } from '../shared/utils';
|
|
1
|
+
import { generateHashId, normalizeForUrl } from '../shared/utils';
|
|
2
2
|
// Mark ID generators
|
|
3
3
|
export const generateMarkId = (params) => {
|
|
4
4
|
if (params.level === 'round' && params._round)
|
|
@@ -29,4 +29,11 @@ export const generateMarkUrl = (params) => {
|
|
|
29
29
|
parts.push(params._realFixture);
|
|
30
30
|
return `marks/${parts.join('/')}`;
|
|
31
31
|
};
|
|
32
|
+
export const generateMarkOrder = (params) => {
|
|
33
|
+
if (!params.startingAt)
|
|
34
|
+
return '0';
|
|
35
|
+
const ts = new Date(params.startingAt).getTime();
|
|
36
|
+
const slug = normalizeForUrl(params.name || '');
|
|
37
|
+
return slug ? `${ts}_${slug}` : String(ts);
|
|
38
|
+
};
|
|
32
39
|
//# sourceMappingURL=timeline.functions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.functions.js","sourceRoot":"","sources":["../../../src/modules/timeline/timeline.functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"timeline.functions.js","sourceRoot":"","sources":["../../../src/modules/timeline/timeline.functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAIjE,qBAAqB;AACrB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAA0F,EAAU,EAAE;IACnI,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,cAAc,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;IAE5G,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,cAAc,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;IAE5G,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,cAAc,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;IAE9G,OAAO,cAAc,CAAC,MAAM,EAAE;QAC5B,KAAK,EAAE,MAAM,CAAC,MAAM;QACpB,SAAS,EAAE,MAAM,CAAC,UAAU;QAC5B,WAAW,EAAE,MAAM,CAAC,YAAY;KACjC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAA0F,EAAU,EAAE;IACpI,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO;QAAE,OAAO,eAAe,MAAM,CAAC,MAAM,EAAE,CAAA;IACnE,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO;QAAE,OAAO,eAAe,MAAM,CAAC,MAAM,EAAE,CAAA;IACnE,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,gBAAgB,MAAM,CAAC,MAAM,EAAE,CAAA;IAErE,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,MAAM,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC5C,IAAI,MAAM,CAAC,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACpD,IAAI,MAAM,CAAC,YAAY;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAExD,OAAO,SAAS,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;AACnC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAGjC,EAAU,EAAE;IACX,IAAI,CAAC,MAAM,CAAC,UAAU;QAAE,OAAO,GAAG,CAAA;IAClC,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAA;IAChD,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;IAC/C,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAC5C,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/scripts/backup.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { spawn } from 'bun';
|
|
2
|
+
import { existsSync, mkdirSync } from 'fs';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
const BACKUP_DIR = join(process.cwd(), 'backups');
|
|
5
|
+
function parseConnectionString(url) {
|
|
6
|
+
const urlObj = new URL(url);
|
|
7
|
+
return {
|
|
8
|
+
user: urlObj.username,
|
|
9
|
+
password: urlObj.password,
|
|
10
|
+
host: urlObj.hostname,
|
|
11
|
+
port: urlObj.port || '5432',
|
|
12
|
+
database: urlObj.pathname.slice(1),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
async function backup() {
|
|
16
|
+
const connectionString = process.env.DATABASE_URL || process.env.POSTGRES_URL;
|
|
17
|
+
if (!connectionString)
|
|
18
|
+
throw new Error('DATABASE_URL or POSTGRES_URL not set');
|
|
19
|
+
const conn = parseConnectionString(connectionString);
|
|
20
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-').split('T').join('_').split('Z')[0];
|
|
21
|
+
const filename = `${conn.database}_${timestamp}.sql`;
|
|
22
|
+
if (!existsSync(BACKUP_DIR))
|
|
23
|
+
mkdirSync(BACKUP_DIR, { recursive: true });
|
|
24
|
+
const backupPath = join(BACKUP_DIR, filename);
|
|
25
|
+
console.log(`šļø Starting backup of database: ${conn.database}`);
|
|
26
|
+
console.log(`š Backup location: ${backupPath}`);
|
|
27
|
+
const env = { ...process.env, PGPASSWORD: conn.password };
|
|
28
|
+
const args = ['-h', conn.host, '-p', conn.port, '-U', conn.user, '-d', conn.database, '-F', 'p', '-f', backupPath];
|
|
29
|
+
const proc = spawn(['pg_dump', ...args], { env, stdout: 'inherit', stderr: 'inherit' });
|
|
30
|
+
const exitCode = await proc.exited;
|
|
31
|
+
if (exitCode === 0) {
|
|
32
|
+
console.log(`ā
Backup completed successfully: ${filename}`);
|
|
33
|
+
// console.log(`š¦ File size: ${(await Bun.file(backupPath).size() / 1024 / 1024).toFixed(2)} MB`)
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
console.error(`ā Backup failed with exit code: ${exitCode}`);
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
backup();
|
|
41
|
+
//# sourceMappingURL=backup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/scripts/backup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,CAAA;AAC3B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAA;AAEjD,SAAS,qBAAqB,CAAC,GAAW;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IAC3B,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;KACnC,CAAA;AACH,CAAC;AAED,KAAK,UAAU,MAAM;IACnB,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAA;IAC7E,IAAI,CAAC,gBAAgB;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;IAE9E,MAAM,IAAI,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,CAAA;IACpD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACnG,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,SAAS,MAAM,CAAA;IAEpD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEvE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAE7C,OAAO,CAAC,GAAG,CAAC,qCAAqC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;IACjE,OAAO,CAAC,GAAG,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAA;IAEhD,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAA;IACzD,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,CAAA;IAElH,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAA;IACvF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAA;IAElC,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,oCAAoC,QAAQ,EAAE,CAAC,CAAA;QAC3D,kGAAkG;IACpG,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAA;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,MAAM,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restore.d.ts","sourceRoot":"","sources":["../../src/scripts/restore.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { spawn } from 'bun';
|
|
2
|
+
import { existsSync, readdirSync } from 'fs';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
const BACKUP_DIR = join(process.cwd(), 'backups');
|
|
5
|
+
function parseConnectionString(url) {
|
|
6
|
+
const urlObj = new URL(url);
|
|
7
|
+
return {
|
|
8
|
+
user: urlObj.username,
|
|
9
|
+
password: urlObj.password,
|
|
10
|
+
host: urlObj.hostname,
|
|
11
|
+
port: urlObj.port || '5432',
|
|
12
|
+
database: urlObj.pathname.slice(1)
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function listBackups() {
|
|
16
|
+
if (!existsSync(BACKUP_DIR)) {
|
|
17
|
+
console.log('ā No backups directory found. Run backup.ts first.');
|
|
18
|
+
return [];
|
|
19
|
+
}
|
|
20
|
+
return readdirSync(BACKUP_DIR).filter(f => f.endsWith('.sql')).sort().reverse();
|
|
21
|
+
}
|
|
22
|
+
async function restore() {
|
|
23
|
+
const connectionString = process.env.DATABASE_URL || process.env.POSTGRES_URL;
|
|
24
|
+
if (!connectionString)
|
|
25
|
+
throw new Error('DATABASE_URL or POSTGRES_URL not set');
|
|
26
|
+
const backupFile = process.argv[2];
|
|
27
|
+
const backups = listBackups();
|
|
28
|
+
if (backups.length === 0)
|
|
29
|
+
process.exit(1);
|
|
30
|
+
let selectedBackup;
|
|
31
|
+
if (backupFile) {
|
|
32
|
+
if (!existsSync(join(BACKUP_DIR, backupFile))) {
|
|
33
|
+
console.log(`ā Backup file not found: ${backupFile}`);
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
selectedBackup = backupFile;
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
console.log('\nš¦ Available backups:');
|
|
40
|
+
backups.forEach((f, i) => console.log(` ${i + 1}. ${f}`));
|
|
41
|
+
selectedBackup = backups[0];
|
|
42
|
+
console.log(`\nšÆ Using latest backup: ${selectedBackup}`);
|
|
43
|
+
}
|
|
44
|
+
const backupPath = join(BACKUP_DIR, selectedBackup);
|
|
45
|
+
const conn = parseConnectionString(connectionString);
|
|
46
|
+
console.log(`\nā ļø WARNING: This will drop and recreate the database: ${conn.database}`);
|
|
47
|
+
console.log('Press Ctrl+C to cancel, or wait 3 seconds to continue...\n');
|
|
48
|
+
await new Promise(resolve => setTimeout(resolve, 3000));
|
|
49
|
+
console.log(`šļø Dropping existing database connections...`);
|
|
50
|
+
const terminateConnections = `
|
|
51
|
+
SELECT pg_terminate_backend(pg_stat_activity.pid)
|
|
52
|
+
FROM pg_stat_activity
|
|
53
|
+
WHERE pg_stat_activity.datname = '${conn.database}'
|
|
54
|
+
AND pid <> pg_backend_pid();
|
|
55
|
+
`;
|
|
56
|
+
const env = { ...process.env, PGPASSWORD: conn.password };
|
|
57
|
+
const psqlArgs = ['-h', conn.host, '-p', conn.port, '-U', conn.user, '-d', 'postgres'];
|
|
58
|
+
await spawn(['psql', ...psqlArgs, '-c', terminateConnections], { env, stdout: 'pipe', stderr: 'pipe' }).exited;
|
|
59
|
+
console.log(`šļø Dropping database: ${conn.database}`);
|
|
60
|
+
await spawn(['psql', ...psqlArgs, '-c', `DROP DATABASE IF EXISTS "${conn.database}";`], { env, stdout: 'inherit', stderr: 'inherit' }).exited;
|
|
61
|
+
console.log(`š Creating database: ${conn.database}`);
|
|
62
|
+
await spawn(['psql', ...psqlArgs, '-c', `CREATE DATABASE "${conn.database}";`], { env, stdout: 'inherit', stderr: 'inherit' }).exited;
|
|
63
|
+
console.log(`š„ Restoring backup: ${selectedBackup}`);
|
|
64
|
+
const restoreArgs = ['-h', conn.host, '-p', conn.port, '-U', conn.user, '-d', conn.database, '-f', backupPath];
|
|
65
|
+
const proc = spawn(['psql', ...restoreArgs], { env, stdout: 'inherit', stderr: 'inherit' });
|
|
66
|
+
const exitCode = await proc.exited;
|
|
67
|
+
if (exitCode === 0) {
|
|
68
|
+
console.log(`ā
Restore completed successfully!`);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
console.error(`ā Restore failed with exit code: ${exitCode}`);
|
|
72
|
+
process.exit(1);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
restore();
|
|
76
|
+
//# sourceMappingURL=restore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restore.js","sourceRoot":"","sources":["../../src/scripts/restore.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@outs-tand-ing/postgres",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.5",
|
|
4
4
|
"description": "PostgreSQL database with Drizzle ORM for Outs project",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -76,7 +76,10 @@
|
|
|
76
76
|
"neon:push": "bun neon push production",
|
|
77
77
|
"studios": "bun run db:studio & bun run neon:studio",
|
|
78
78
|
"seed:avatars": "bun run src/seeds/avatars.ts",
|
|
79
|
-
"typecheck": "tsc --noEmit"
|
|
79
|
+
"typecheck": "tsc --noEmit",
|
|
80
|
+
"backup": "bun run src/scripts/backup.ts",
|
|
81
|
+
"restore": "bun run src/scripts/restore.ts",
|
|
82
|
+
"test": "bun test"
|
|
80
83
|
},
|
|
81
84
|
"peerDependencies": {
|
|
82
85
|
"drizzle-orm": "^0.45.1",
|