@descryy/runtime-database-observation 0.5.2 → 0.5.4
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 +8 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/mysql-row-collector.d.ts +33 -19
- package/dist/mysql-row-collector.d.ts.map +1 -1
- package/dist/mysql-row-collector.js +480 -26
- package/dist/mysql-row-collector.js.map +1 -1
- package/dist/postgres-log-parser.d.ts +15 -29
- package/dist/postgres-log-parser.d.ts.map +1 -1
- package/dist/postgres-log-parser.js +103 -32
- package/dist/postgres-log-parser.js.map +1 -1
- package/dist/postgres-log-source.d.ts +4 -0
- package/dist/postgres-log-source.d.ts.map +1 -1
- package/dist/postgres-log-source.js +196 -36
- package/dist/postgres-log-source.js.map +1 -1
- package/dist/postgres-query-collector.d.ts.map +1 -1
- package/dist/postgres-query-collector.js +43 -13
- package/dist/postgres-query-collector.js.map +1 -1
- package/dist/postgres-row-collector.d.ts +7 -0
- package/dist/postgres-row-collector.d.ts.map +1 -1
- package/dist/postgres-row-collector.js +112 -17
- package/dist/postgres-row-collector.js.map +1 -1
- package/dist/prisma-instrumentation.d.ts +20 -0
- package/dist/prisma-instrumentation.d.ts.map +1 -0
- package/dist/prisma-instrumentation.js +99 -0
- package/dist/prisma-instrumentation.js.map +1 -0
- package/dist/query-collector.d.ts +2 -0
- package/dist/query-collector.d.ts.map +1 -1
- package/dist/query-collector.js +38 -13
- package/dist/query-collector.js.map +1 -1
- package/dist/query-line-parser.d.ts.map +1 -1
- package/dist/query-line-parser.js +2 -1
- package/dist/query-line-parser.js.map +1 -1
- package/dist/query-marker.d.ts +10 -1
- package/dist/query-marker.d.ts.map +1 -1
- package/dist/query-marker.js +2 -0
- package/dist/query-marker.js.map +1 -1
- package/dist/row-capture-policy.d.ts +31 -0
- package/dist/row-capture-policy.d.ts.map +1 -0
- package/dist/row-capture-policy.js +95 -0
- package/dist/row-capture-policy.js.map +1 -0
- package/dist/smoke.d.ts.map +1 -1
- package/dist/smoke.js +2 -0
- package/dist/smoke.js.map +1 -1
- package/dist/sqlite-instrumentation.js +9 -2
- package/dist/sqlite-instrumentation.js.map +1 -1
- package/dist/sqlite-row-snapshot.d.ts +4 -0
- package/dist/sqlite-row-snapshot.d.ts.map +1 -1
- package/dist/sqlite-row-snapshot.js +153 -25
- package/dist/sqlite-row-snapshot.js.map +1 -1
- package/dist/table-extraction.d.ts.map +1 -1
- package/dist/table-extraction.js +124 -5
- package/dist/table-extraction.js.map +1 -1
- package/package.json +9 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-extraction.d.ts","sourceRoot":"","sources":["../src/table-extraction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"table-extraction.d.ts","sourceRoot":"","sources":["../src/table-extraction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAsIH;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqB7D"}
|
package/dist/table-extraction.js
CHANGED
|
@@ -21,6 +21,9 @@ const INSERT_INTO = new RegExp(`^\\s*INSERT\\s+INTO\\s+(${QUALIFIED})`, "i");
|
|
|
21
21
|
const UPDATE = new RegExp(`^\\s*UPDATE\\s+(${QUALIFIED})`, "i");
|
|
22
22
|
const DELETE_FROM = new RegExp(`^\\s*DELETE\\s+FROM\\s+(${QUALIFIED})`, "i");
|
|
23
23
|
const SELECT_FROM = new RegExp(`\\bFROM\\s+(${QUALIFIED})`, "i");
|
|
24
|
+
const FROM_KEYWORD = /\bFROM\b/i;
|
|
25
|
+
const DOLLAR_TAG = /^\$[A-Za-z_]*\$/;
|
|
26
|
+
const IDENTIFIER_CHARACTER = /[A-Za-z0-9_\])]/;
|
|
24
27
|
/** Anywhere in the statement — a JOIN or a CTE makes "the" target table an unresolvable question, not a hard one. */
|
|
25
28
|
const AMBIGUOUS = /\bJOIN\b|\bWITH\b\s+[\w"`[]/i;
|
|
26
29
|
function unquote(identifier) {
|
|
@@ -37,13 +40,125 @@ function hasCommaJoinAfter(sql, matchEnd) {
|
|
|
37
40
|
const nextKeyword = /^\s*(,|WHERE|GROUP|ORDER|LIMIT|JOIN|;|$)/i.exec(rest);
|
|
38
41
|
return nextKeyword !== null && nextKeyword[1] === ",";
|
|
39
42
|
}
|
|
43
|
+
function closingIndex(sql, from, closer, doubledEscapes) {
|
|
44
|
+
for (let i = from; i < sql.length; i += 1) {
|
|
45
|
+
if (sql[i] !== closer)
|
|
46
|
+
continue;
|
|
47
|
+
if (doubledEscapes && sql[i + 1] === closer) {
|
|
48
|
+
i += 1;
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
return i;
|
|
52
|
+
}
|
|
53
|
+
return -1;
|
|
54
|
+
}
|
|
55
|
+
function previousSignificant(sql, index) {
|
|
56
|
+
for (let i = index - 1; i >= 0; i -= 1) {
|
|
57
|
+
if (!/\s/.test(sql[i]))
|
|
58
|
+
return sql[i];
|
|
59
|
+
}
|
|
60
|
+
return "";
|
|
61
|
+
}
|
|
62
|
+
function scanStatement(sql) {
|
|
63
|
+
let top = "";
|
|
64
|
+
let nested = "";
|
|
65
|
+
let nestedFromAt = null;
|
|
66
|
+
let depth = 0;
|
|
67
|
+
const append = (text) => {
|
|
68
|
+
if (depth === 0)
|
|
69
|
+
top += text;
|
|
70
|
+
else
|
|
71
|
+
nested += text;
|
|
72
|
+
};
|
|
73
|
+
for (let i = 0; i < sql.length; i += 1) {
|
|
74
|
+
const ch = sql[i];
|
|
75
|
+
if (ch === "-" && sql[i + 1] === "-") {
|
|
76
|
+
const end = sql.indexOf("\n", i);
|
|
77
|
+
i = end === -1 ? sql.length : end;
|
|
78
|
+
append(" ");
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
if (ch === "/" && sql[i + 1] === "*") {
|
|
82
|
+
const end = sql.indexOf("*/", i + 2);
|
|
83
|
+
if (end === -1)
|
|
84
|
+
return null;
|
|
85
|
+
i = end + 1;
|
|
86
|
+
append(" ");
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
if (ch === "'") {
|
|
90
|
+
const end = closingIndex(sql, i + 1, "'", true);
|
|
91
|
+
if (end === -1 || sql.slice(i + 1, end).includes("\\"))
|
|
92
|
+
return null;
|
|
93
|
+
i = end;
|
|
94
|
+
append("''");
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
if (ch === '"' || ch === "`") {
|
|
98
|
+
const end = closingIndex(sql, i + 1, ch, true);
|
|
99
|
+
if (end === -1)
|
|
100
|
+
return null;
|
|
101
|
+
append(sql.slice(i, end + 1));
|
|
102
|
+
i = end;
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
if (ch === "[" && !IDENTIFIER_CHARACTER.test(previousSignificant(sql, i))) {
|
|
106
|
+
const end = sql.indexOf("]", i + 1);
|
|
107
|
+
if (end === -1)
|
|
108
|
+
return null;
|
|
109
|
+
append(sql.slice(i, end + 1));
|
|
110
|
+
i = end;
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
if (ch === "$") {
|
|
114
|
+
const tag = DOLLAR_TAG.exec(sql.slice(i));
|
|
115
|
+
if (tag !== null) {
|
|
116
|
+
const end = sql.indexOf(tag[0], i + tag[0].length);
|
|
117
|
+
if (end === -1)
|
|
118
|
+
return null;
|
|
119
|
+
i = end + tag[0].length - 1;
|
|
120
|
+
append("''");
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (ch === "(") {
|
|
125
|
+
depth += 1;
|
|
126
|
+
if (depth === 1)
|
|
127
|
+
top += "(";
|
|
128
|
+
else
|
|
129
|
+
nested += ch;
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
if (ch === ")") {
|
|
133
|
+
if (depth === 0)
|
|
134
|
+
return null;
|
|
135
|
+
depth -= 1;
|
|
136
|
+
if (depth === 0) {
|
|
137
|
+
if (nestedFromAt === null && FROM_KEYWORD.test(nested))
|
|
138
|
+
nestedFromAt = top.length;
|
|
139
|
+
nested = "";
|
|
140
|
+
top += ")";
|
|
141
|
+
}
|
|
142
|
+
else
|
|
143
|
+
nested += ch;
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
append(ch);
|
|
147
|
+
}
|
|
148
|
+
if (depth !== 0)
|
|
149
|
+
return null;
|
|
150
|
+
return { top, nestedFromAt };
|
|
151
|
+
}
|
|
40
152
|
/**
|
|
41
153
|
* `null` for anything not recognised as exactly one of INSERT/UPDATE/
|
|
42
154
|
* DELETE/SELECT with a single, unambiguous target table. Never a partial
|
|
43
155
|
* or best-effort name.
|
|
44
156
|
*/
|
|
45
157
|
export function extractTargetTable(sql) {
|
|
46
|
-
const
|
|
158
|
+
const shape = scanStatement(sql);
|
|
159
|
+
if (shape === null)
|
|
160
|
+
return null;
|
|
161
|
+
const trimmed = shape.top.trim();
|
|
47
162
|
if (AMBIGUOUS.test(trimmed))
|
|
48
163
|
return null;
|
|
49
164
|
const insert = INSERT_INTO.exec(trimmed);
|
|
@@ -56,9 +171,13 @@ export function extractTargetTable(sql) {
|
|
|
56
171
|
if (del !== null)
|
|
57
172
|
return unqualify(del[1]);
|
|
58
173
|
const select = SELECT_FROM.exec(trimmed);
|
|
59
|
-
if (select
|
|
60
|
-
return
|
|
61
|
-
|
|
62
|
-
|
|
174
|
+
if (select === null)
|
|
175
|
+
return null;
|
|
176
|
+
const leadingNestedFrom = shape.nestedFromAt !== null && shape.nestedFromAt - (shape.top.length - shape.top.trimStart().length) <= select.index;
|
|
177
|
+
if (leadingNestedFrom)
|
|
178
|
+
return null;
|
|
179
|
+
if (hasCommaJoinAfter(trimmed, select.index + select[0].length))
|
|
180
|
+
return null;
|
|
181
|
+
return unqualify(select[1]);
|
|
63
182
|
}
|
|
64
183
|
//# sourceMappingURL=table-extraction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-extraction.js","sourceRoot":"","sources":["../src/table-extraction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAA,wBAAwB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAA,0BAA0B,CAAC;AACzG,MAAM,SAAS,GAAG,GAAG,UAAU,SAAS,UAAU,IAAI,CAAC;AAEvD,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,2BAA2B,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7E,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,mBAAmB,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;AAChE,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,2BAA2B,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7E,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,eAAe,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"table-extraction.js","sourceRoot":"","sources":["../src/table-extraction.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@descryy/runtime-database-observation",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.4",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"description": "Database observation (plan §18, checklist §14): real DATABASE_QUERY capture via driver instrumentation, never parsed application logs, plus row-level before/after state where the driver honestly supports it (Postgres logical decoding
|
|
5
|
+
"description": "Database observation (plan §18, checklist §14): real DATABASE_QUERY capture via driver instrumentation, never parsed application logs, plus row-level before/after state where the driver honestly supports it (Postgres logical decoding; SQLite and MySQL/MariaDB before/after snapshot keyed by primary key). Driver #1 is node:sqlite.",
|
|
6
6
|
"license": "UNLICENSED",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
@@ -27,16 +27,17 @@
|
|
|
27
27
|
},
|
|
28
28
|
"descrySmoke": "dist/smoke.js",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@descryy/runtime-contracts": "0.4.
|
|
31
|
-
"@descryy/runtime-backend-observation": "0.3.
|
|
32
|
-
"@descryy/runtime-graph-correlator": "0.5.
|
|
30
|
+
"@descryy/runtime-contracts": "0.4.1",
|
|
31
|
+
"@descryy/runtime-backend-observation": "0.3.9",
|
|
32
|
+
"@descryy/runtime-graph-correlator": "0.5.2"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@descryy/ir": "0.
|
|
36
|
-
"@descryy/runtime-controller": "0.4.
|
|
37
|
-
"@descryy/runtime-orchestrator": "0.5.
|
|
35
|
+
"@descryy/ir": "0.12.0",
|
|
36
|
+
"@descryy/runtime-controller": "0.4.2",
|
|
37
|
+
"@descryy/runtime-orchestrator": "0.5.2"
|
|
38
38
|
},
|
|
39
39
|
"optionalDependencies": {
|
|
40
|
+
"mysql2": "^3.15.0",
|
|
40
41
|
"pg": "^8.13.0"
|
|
41
42
|
},
|
|
42
43
|
"scripts": {
|