@churchapps/apihelper 0.1.8 → 0.1.10
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/helpers/DBCreator.js +2 -2
- package/dist/helpers/DBCreator.js.map +1 -1
- package/dist/helpers/OmitEmpty.d.ts +1 -0
- package/dist/helpers/OmitEmpty.d.ts.map +1 -1
- package/dist/helpers/OmitEmpty.js +31 -7
- package/dist/helpers/OmitEmpty.js.map +1 -1
- package/package.json +16 -23
- package/scripts/copy-assets.js +12 -3
- package/src/helpers/DBCreator.ts +1 -1
- package/src/helpers/OmitEmpty.ts +24 -4
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.DBCreator = void 0;
|
|
7
7
|
const dotenv_1 = __importDefault(require("dotenv"));
|
|
8
|
-
const
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
9
|
const DB_1 = require("./DB");
|
|
10
10
|
class DBCreator {
|
|
11
11
|
static async init(selectedTables) {
|
|
@@ -23,7 +23,7 @@ class DBCreator {
|
|
|
23
23
|
}
|
|
24
24
|
static async runScript(title, file, customDelimeter) {
|
|
25
25
|
console.log("Creating '" + title + "'");
|
|
26
|
-
const sql =
|
|
26
|
+
const sql = fs_1.default.readFileSync(file, "utf-8");
|
|
27
27
|
let del = /;(?=END)\s*$|;(?!\nEND)\s*$/gm;
|
|
28
28
|
if (customDelimeter) {
|
|
29
29
|
del = /\$\$$/gm;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DBCreator.js","sourceRoot":"","sources":["../../src/helpers/DBCreator.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"DBCreator.js","sourceRoot":"","sources":["../../src/helpers/DBCreator.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,4CAAoB;AACpB,6BAA0B;AAE1B,MAAa,SAAS;IAQb,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,cAAwB;QAC/C,gBAAM,CAAC,MAAM,EAAE,CAAC;QAEhB,MAAM,IAAI,GAAsC,EAAE,CAAC;QACnD,cAAc,CAAC,OAAO,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAC,CAAC,EAAC,EAAE;gBAC5B,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE;oBAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,EAAE,IAAI,IAAI;YAAE,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjG,OAAO;IACT,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,IAAY,EAAE,eAAwB;QACjF,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,YAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3C,IAAI,GAAG,GAAG,+BAA+B,CAAC;QAC1C,IAAI,eAAe,EAAE,CAAC;YACpB,GAAG,GAAG,SAAS,CAAC;QAClB,CAAC;QACD,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,KAAK,MAAM,SAAS,IAAI,UAAU;YAAE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,OAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC9F,CAAC;;AA/BH,8BAkCC;AAhCgB,gBAAM,GAAsC;IACzD,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;IACvC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;IACvC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE;CAC9C,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OmitEmpty.d.ts","sourceRoot":"","sources":["../../src/helpers/OmitEmpty.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OmitEmpty.d.ts","sourceRoot":"","sources":["../../src/helpers/OmitEmpty.ts"],"names":[],"mappings":"AAMA,UAAU,gBAAgB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAQD,qBAAa,SAAS;WACJ,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO;IAkC9E,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAQhC,OAAO,CAAC,MAAM,CAAC,OAAO;IAqBtB,OAAO,CAAC,MAAM,CAAC,OAAO;CA6CzB"}
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
// Based on https://www.npmjs.com/package/omit-empty
|
|
2
2
|
// The project appears to be abandoned, but needed modification to allow for empty arrays.
|
|
3
3
|
"use strict";
|
|
4
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
6
|
-
};
|
|
7
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
5
|
exports.OmitEmpty = void 0;
|
|
9
|
-
const kind_of_1 = __importDefault(require("kind-of"));
|
|
10
6
|
class OmitEmpty {
|
|
11
7
|
static omitEmpty(obj, options = {}) {
|
|
12
8
|
const runtimeOpts = OmitEmpty._buildRuntimeOpts(options);
|
|
@@ -14,7 +10,7 @@ class OmitEmpty {
|
|
|
14
10
|
if (Array.isArray(value)) {
|
|
15
11
|
value = value.map(v => omit(v, opts)).filter(v => !OmitEmpty.isEmpty(v, opts));
|
|
16
12
|
}
|
|
17
|
-
if (
|
|
13
|
+
if (OmitEmpty.getType(value) === "object" && value !== null) {
|
|
18
14
|
const result = {};
|
|
19
15
|
for (const key of Object.keys(value)) {
|
|
20
16
|
if (!opts.excludedProperties.includes(key)) {
|
|
@@ -32,7 +28,7 @@ class OmitEmpty {
|
|
|
32
28
|
};
|
|
33
29
|
const res = omit(obj, runtimeOpts);
|
|
34
30
|
if (res === void 0) {
|
|
35
|
-
return
|
|
31
|
+
return OmitEmpty.getType(obj) === "object" ? {} : res;
|
|
36
32
|
}
|
|
37
33
|
return res;
|
|
38
34
|
}
|
|
@@ -44,8 +40,36 @@ class OmitEmpty {
|
|
|
44
40
|
};
|
|
45
41
|
}
|
|
46
42
|
;
|
|
43
|
+
static getType(value) {
|
|
44
|
+
if (value === null)
|
|
45
|
+
return "null";
|
|
46
|
+
if (value === undefined)
|
|
47
|
+
return "undefined";
|
|
48
|
+
if (Array.isArray(value))
|
|
49
|
+
return "array";
|
|
50
|
+
if (value instanceof Date)
|
|
51
|
+
return "date";
|
|
52
|
+
if (value instanceof RegExp)
|
|
53
|
+
return "regexp";
|
|
54
|
+
if (value instanceof Error)
|
|
55
|
+
return "error";
|
|
56
|
+
if (value instanceof Map)
|
|
57
|
+
return "map";
|
|
58
|
+
if (value instanceof Set)
|
|
59
|
+
return "set";
|
|
60
|
+
if (value instanceof File)
|
|
61
|
+
return "file";
|
|
62
|
+
const type = typeof value;
|
|
63
|
+
if (type === "object") {
|
|
64
|
+
// Check if it's an arguments object
|
|
65
|
+
if (Object.prototype.toString.call(value) === '[object Arguments]') {
|
|
66
|
+
return "arguments";
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return type;
|
|
70
|
+
}
|
|
47
71
|
static isEmpty(value, runtimeOpts) {
|
|
48
|
-
switch (
|
|
72
|
+
switch (OmitEmpty.getType(value)) {
|
|
49
73
|
case "null":
|
|
50
74
|
case "undefined":
|
|
51
75
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OmitEmpty.js","sourceRoot":"","sources":["../../src/helpers/OmitEmpty.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,0FAA0F;AAE1F,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"OmitEmpty.js","sourceRoot":"","sources":["../../src/helpers/OmitEmpty.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@churchapps/apihelper",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.10",
|
|
4
4
|
"description": "Library of helper functions not specific to any one ChurchApps project or framework.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -35,41 +35,34 @@
|
|
|
35
35
|
},
|
|
36
36
|
"homepage": "https://github.com/LiveChurchSolutions/Helpers#readme",
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@aws-sdk/client-
|
|
39
|
-
"@aws-sdk/client-
|
|
40
|
-
"@aws-sdk/client-
|
|
41
|
-
"@aws-sdk/
|
|
42
|
-
"@
|
|
43
|
-
"
|
|
44
|
-
"@churchapps/helpers": "^1.0.44",
|
|
45
|
-
"dotenv": "^17.0.1",
|
|
38
|
+
"@aws-sdk/client-s3": "^3.862.0",
|
|
39
|
+
"@aws-sdk/client-ses": "^3.862.0",
|
|
40
|
+
"@aws-sdk/client-ssm": "^3.862.0",
|
|
41
|
+
"@aws-sdk/s3-presigned-post": "^3.862.0",
|
|
42
|
+
"@churchapps/helpers": "^1.0.49",
|
|
43
|
+
"dotenv": "^17.2.1",
|
|
46
44
|
"express": "^4.21.2",
|
|
47
|
-
"fs-extra": "^11.3.0",
|
|
48
45
|
"inversify": "^6.2.2",
|
|
49
46
|
"inversify-express-utils": "^6.5.0",
|
|
50
47
|
"jsonwebtoken": "^9.0.2",
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"nodemailer": "^7.0.4",
|
|
54
|
-
"reflect-metadata": "^0.2.2",
|
|
48
|
+
"mysql2": "^3.14.3",
|
|
49
|
+
"nodemailer": "^7.0.5",
|
|
55
50
|
"winston": "^3.17.0",
|
|
56
51
|
"winston-cloudwatch": "^6.3.0"
|
|
57
52
|
},
|
|
58
53
|
"devDependencies": {
|
|
59
54
|
"@types/express": "^4.17.21",
|
|
60
|
-
"@types/fs-extra": "^11.0.4",
|
|
61
55
|
"@types/jsonwebtoken": "^9.0.10",
|
|
62
|
-
"@types/
|
|
63
|
-
"@types/node": "^24.0.10",
|
|
56
|
+
"@types/node": "^24.2.0",
|
|
64
57
|
"@types/nodemailer": "^6.4.17",
|
|
65
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
66
|
-
"@typescript-eslint/parser": "^8.
|
|
67
|
-
"eslint": "^9.
|
|
68
|
-
"eslint-config-prettier": "^10.1.
|
|
69
|
-
"eslint-plugin-prettier": "^5.5.
|
|
58
|
+
"@typescript-eslint/eslint-plugin": "^8.39.0",
|
|
59
|
+
"@typescript-eslint/parser": "^8.39.0",
|
|
60
|
+
"eslint": "^9.32.0",
|
|
61
|
+
"eslint-config-prettier": "^10.1.8",
|
|
62
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
70
63
|
"npm-run-all2": "^8.0.4",
|
|
71
64
|
"prettier": "^3.6.2",
|
|
72
65
|
"rimraf": "^6.0.1",
|
|
73
|
-
"typescript": "^5.
|
|
66
|
+
"typescript": "^5.9.2"
|
|
74
67
|
}
|
|
75
68
|
}
|
package/scripts/copy-assets.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import fs from 'fs
|
|
1
|
+
import fs from 'fs';
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { fileURLToPath } from 'url';
|
|
4
4
|
|
|
@@ -11,10 +11,19 @@ async function copyAssets() {
|
|
|
11
11
|
const destDir = path.join(__dirname, '..', 'dist', 'templates');
|
|
12
12
|
|
|
13
13
|
// Ensure destination directory exists
|
|
14
|
-
await fs.
|
|
14
|
+
await fs.promises.mkdir(destDir, { recursive: true });
|
|
15
15
|
|
|
16
16
|
// Copy all files from src/tools/templates to dist/templates
|
|
17
|
-
await fs.
|
|
17
|
+
const files = await fs.promises.readdir(srcDir);
|
|
18
|
+
for (const file of files) {
|
|
19
|
+
const srcPath = path.join(srcDir, file);
|
|
20
|
+
const destPath = path.join(destDir, file);
|
|
21
|
+
const stat = await fs.promises.stat(srcPath);
|
|
22
|
+
|
|
23
|
+
if (stat.isFile()) {
|
|
24
|
+
await fs.promises.copyFile(srcPath, destPath);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
18
27
|
|
|
19
28
|
console.log('Assets copied successfully');
|
|
20
29
|
} catch (error) {
|
package/src/helpers/DBCreator.ts
CHANGED
package/src/helpers/OmitEmpty.ts
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
|
|
4
4
|
"use strict";
|
|
5
5
|
|
|
6
|
-
import typeOf from "kind-of";
|
|
7
6
|
|
|
8
7
|
interface OmitEmptyOptions {
|
|
9
8
|
omitZero?: boolean;
|
|
@@ -26,7 +25,7 @@ export class OmitEmpty {
|
|
|
26
25
|
value = value.map(v => omit(v, opts)).filter(v => !OmitEmpty.isEmpty(v, opts));
|
|
27
26
|
}
|
|
28
27
|
|
|
29
|
-
if (
|
|
28
|
+
if (OmitEmpty.getType(value) === "object" && value !== null) {
|
|
30
29
|
const result: Record<string, unknown> = {};
|
|
31
30
|
for (const key of Object.keys(value as Record<string, unknown>)) {
|
|
32
31
|
if (!opts.excludedProperties.includes(key)) {
|
|
@@ -46,7 +45,7 @@ export class OmitEmpty {
|
|
|
46
45
|
|
|
47
46
|
const res = omit(obj, runtimeOpts);
|
|
48
47
|
if (res === void 0) {
|
|
49
|
-
return
|
|
48
|
+
return OmitEmpty.getType(obj) === "object" ? {} : res;
|
|
50
49
|
}
|
|
51
50
|
return res;
|
|
52
51
|
}
|
|
@@ -60,8 +59,29 @@ export class OmitEmpty {
|
|
|
60
59
|
};
|
|
61
60
|
};
|
|
62
61
|
|
|
62
|
+
private static getType(value: unknown): string {
|
|
63
|
+
if (value === null) return "null";
|
|
64
|
+
if (value === undefined) return "undefined";
|
|
65
|
+
if (Array.isArray(value)) return "array";
|
|
66
|
+
if (value instanceof Date) return "date";
|
|
67
|
+
if (value instanceof RegExp) return "regexp";
|
|
68
|
+
if (value instanceof Error) return "error";
|
|
69
|
+
if (value instanceof Map) return "map";
|
|
70
|
+
if (value instanceof Set) return "set";
|
|
71
|
+
if (value instanceof File) return "file";
|
|
72
|
+
|
|
73
|
+
const type = typeof value;
|
|
74
|
+
if (type === "object") {
|
|
75
|
+
// Check if it's an arguments object
|
|
76
|
+
if (Object.prototype.toString.call(value) === '[object Arguments]') {
|
|
77
|
+
return "arguments";
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return type;
|
|
81
|
+
}
|
|
82
|
+
|
|
63
83
|
private static isEmpty(value: unknown, runtimeOpts: RuntimeOptions): boolean {
|
|
64
|
-
switch (
|
|
84
|
+
switch (OmitEmpty.getType(value)) {
|
|
65
85
|
case "null":
|
|
66
86
|
case "undefined":
|
|
67
87
|
return true;
|