@prisma-psm/pg 1.0.6 → 1.0.7

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.
Files changed (47) hide show
  1. package/package.json +1 -1
  2. package/src/index.js +2 -2
  3. package/src/index.ts +6 -4
  4. package/src/parser/backup/engine.d.ts.map +1 -1
  5. package/src/parser/backup/engine.js +36 -21
  6. package/src/parser/backup/engine.js.map +1 -1
  7. package/src/parser/backup/engine.ts +36 -16
  8. package/src/parser/notice.js +1 -1
  9. package/src/parser/notice.ts +2 -2
  10. package/src/parser/parser.d.ts +1 -0
  11. package/src/parser/parser.d.ts.map +1 -1
  12. package/src/parser/parser.js +3 -1
  13. package/src/parser/parser.js.map +1 -1
  14. package/src/parser/parser.ts +12 -2
  15. package/src/parser/schama.d.ts +3 -0
  16. package/src/parser/schama.d.ts.map +1 -0
  17. package/src/parser/schama.js +16 -0
  18. package/src/parser/schama.js.map +1 -0
  19. package/src/parser/schama.ts +14 -0
  20. package/src/parser/sql.d.ts.map +1 -1
  21. package/src/parser/sql.js +3 -0
  22. package/src/parser/sql.js.map +1 -1
  23. package/src/parser/sql.ts +7 -2
  24. package/src/parser/sys.js +2 -2
  25. package/src/parser/sys.ts +3 -3
  26. package/src/parser/table/engine.js +2 -2
  27. package/src/parser/table/engine.ts +3 -3
  28. package/src/sql/catalog-maps.d.ts +1 -0
  29. package/src/sql/catalog-maps.d.ts.map +1 -0
  30. package/src/sql/catalog-maps.js +283 -0
  31. package/src/sql/catalog-maps.js.map +1 -0
  32. package/src/sql/catalog-maps.ts +281 -0
  33. package/src/sql/sql-builder.d.ts +1 -0
  34. package/src/sql/sql-builder.d.ts.map +1 -0
  35. package/src/sql/sql-builder.js +256 -0
  36. package/src/sql/sql-builder.js.map +1 -0
  37. package/src/sql/sql-builder.ts +254 -0
  38. package/src/utils/escape.d.ts +5 -1
  39. package/src/utils/escape.d.ts.map +1 -1
  40. package/src/utils/escape.js +328 -4
  41. package/src/utils/escape.js.map +1 -1
  42. package/src/utils/escape.ts +331 -4
  43. package/src/utils/script-util.d.ts +26 -0
  44. package/src/utils/script-util.d.ts.map +1 -0
  45. package/src/utils/script-util.js +95 -0
  46. package/src/utils/script-util.js.map +1 -0
  47. package/src/utils/script-util.ts +105 -0
@@ -0,0 +1,256 @@
1
+ "use strict";
2
+ // import {Escape, lit, oid, SQL} from "../utils/escape";
3
+ // import {ScriptLine, scriptUtil} from "../utils/script-util";
4
+ // import {QueryBuilderResult} from "@prisma-psm/core";
5
+ //
6
+ // export function literalEscape ( value:any){
7
+ // let textValue;
8
+ // if( value === null || value === undefined) textValue = "null";
9
+ // else if( typeof value === "string") textValue = lit( value );
10
+ // else if( typeof value === "number") textValue = value;
11
+ // else if( typeof value === "boolean") textValue = value;
12
+ // else if( typeof value === "object") textValue = lit( JSON.stringify( value ));
13
+ // return textValue;
14
+ // }
15
+ //
16
+ //
17
+ //
18
+ // export type PreparedQuery = {
19
+ // query:string,
20
+ // values:any[],
21
+ // line:ScriptLine
22
+ // }
23
+ //
24
+ // const CHECK = Symbol("check" );
25
+ //
26
+ //
27
+ // export class PostgresQueryBuilderResult implements QueryBuilderResult{
28
+ // escaped:any[];
29
+ // piece:boolean
30
+ // template:string[];
31
+ // private _query:string;
32
+ // public line:ScriptLine;
33
+ //
34
+ // constructor(template:TemplateStringsArray|string|string[], escaped:any[], line:ScriptLine ) {
35
+ // if( !line || !line?.filename ) throw new Error( `Script line is not declared` );
36
+ // if( line.filename.startsWith("node:internal")){
37
+ // throw new Error( `Invalid script line is internal capture`);
38
+ // }
39
+ //
40
+ // if( !escaped ) escaped = [];
41
+ // if( !template ) template = [];
42
+ // this.template = [];
43
+ // this.escaped = [];
44
+ //
45
+ // let hasTemplate = !!template?.length;
46
+ // let hasValue = !!escaped?.length;
47
+ // let hasCheck = !!arguments[2] || arguments[2] === CHECK;
48
+ // if( !hasTemplate && !hasCheck ) throw new Error( "Invalid Builder" );
49
+ //
50
+ //
51
+ // if( typeof template === "string" ){
52
+ // this._query = template;
53
+ // } else {
54
+ // this.template.push( ...template);
55
+ // }
56
+ // this.escaped.push( ...escaped );
57
+ // this.line = line;
58
+ // }
59
+ //
60
+ // get builderParts(){
61
+ // if( this.pieces.length+1 !== this.template.length ) throw new Error( "Inconsistency template builder" );
62
+ //
63
+ // let list:any[] = [];
64
+ // this.template.forEach( (value, index) => {
65
+ // list.push( value );
66
+ // if( index < this.pieces.length ) list.push( this.pieces[ index ]);
67
+ // });
68
+ // return list;
69
+ // }
70
+ //
71
+ //
72
+ // parameterizedQuery():PreparedQuery{
73
+ // if( !!this._query ){
74
+ // let values = this.values.map( value => {
75
+ // if( value instanceof Escape ) return value.value;
76
+ // else return value;
77
+ // })
78
+ // return {
79
+ // query: this._query,
80
+ // values: values,
81
+ // line: this.line
82
+ // };
83
+ // } else {
84
+ // let argIndex = 1;
85
+ // let queryParts = this.builderParts.map( (value, index) => {
86
+ // if( (index %2) === 0 ){
87
+ // return value;
88
+ // }
89
+ //
90
+ // if( value instanceof Escape && value.mode === "type" && value.asArray){
91
+ // return '$'+(argIndex++)+"::"+value.type+"[]";
92
+ // } else if( value instanceof Escape && value.mode === "type" ){
93
+ // return '$'+(argIndex++)+"::"+value.type;
94
+ // }
95
+ //
96
+ // if( value instanceof Escape && value.mode === "identifier" ){
97
+ // return oid( value.value );
98
+ // }
99
+ //
100
+ // if( value === null || value === undefined){
101
+ // return "null";
102
+ // } else {
103
+ // return '$'+(argIndex++);
104
+ // }
105
+ // });
106
+ //
107
+ // let values = this.values.filter( value => {
108
+ // if( value instanceof Escape && value.mode === "identifier" ) return;
109
+ // else return value !== null && value !== undefined;
110
+ // }).map( value => {
111
+ // if( value instanceof Escape ) {
112
+ // if( value.value === null || value.value === undefined ) return null;
113
+ // if( value.type === "jsonb" && typeof value.value === "object" ) return JSON.stringify( value.value );
114
+ // if( value.type === "json" && typeof value.value === "object" ) return JSON.stringify( value.value );
115
+ // return value.value;
116
+ // }
117
+ // else return value;
118
+ // })
119
+ //
120
+ // return {
121
+ // query: queryParts.join(""),
122
+ // values: values,
123
+ // line: this.line
124
+ // }
125
+ // }
126
+ // }
127
+ //
128
+ // add( sqlPart:string, sqlValue:any ){
129
+ // this.template.push( sqlPart );
130
+ // this.values.push( sqlValue );
131
+ // }
132
+ // noParameterizedQuery():PreparedQuery{
133
+ // if( !!this._query ){
134
+ // return {
135
+ // line: this.line,
136
+ // query: this._query,
137
+ // values: null
138
+ // };
139
+ // } else {
140
+ // let queryParts = this.builderParts.map( (value, index) => {
141
+ // let _scape;
142
+ // if ((index % 2) === 0) {
143
+ // return value;
144
+ //
145
+ // }else if( value instanceof Escape && value.mode === "literal") {
146
+ // return lit( value.value?.toString?.()||null )
147
+ // } else if( value instanceof Escape && (value.mode === "unsafe" || value.mode === "keyword")){
148
+ // _scape = value.value;
149
+ // } else if( value instanceof Escape && value.mode === "type" ){
150
+ // let preEscape = value.literal();
151
+ // let textValue = literalEscape( preEscape );
152
+ // // let textValue = value.literal();
153
+ // let _as = "";
154
+ // if( value.type && value.type.length && value.asArray ) _as = `::${value.type}[]`;
155
+ // else if( value.type && value.type.length ) _as = `::${value.type}`;
156
+ // _scape = textValue+_as;
157
+ // } else if( value instanceof Escape && value.mode === "identifier" ){
158
+ // _scape= oid( value.value );
159
+ // } else {
160
+ // _scape = literalEscape( value )
161
+ // }return _scape;
162
+ // });
163
+ //
164
+ // let str = queryParts.join("");
165
+ // return {
166
+ // query: str,
167
+ // values: null,
168
+ // line: this.line
169
+ // }
170
+ // }
171
+ // }
172
+ //
173
+ //
174
+ // push( ...builders:QueryBuilderResult[] ){
175
+ // let _push = ( outsideBuilder:QueryBuilderResult)=>{
176
+ // let checkOutsideBuilder = this.checkSupportedJoin( outsideBuilder );
177
+ // if( !checkOutsideBuilder ) throw new Error( "Unsupported outside builder" );
178
+ // let checkSelfBuilder = this.checkSupportedJoin( this );
179
+ // if( !checkSelfBuilder ) {
180
+ // throw new Error("Current builder no support join");
181
+ // }
182
+ //
183
+ // if( !checkSelfBuilder.hasTemplate ) {
184
+ // this.template = [];
185
+ // if( checkSelfBuilder.hasQuery ){
186
+ // this.template.push( this._query );
187
+ // this._query = null;
188
+ // }
189
+ // }
190
+ //
191
+ // let selfTemplate = this.template;
192
+ // let outsideTemplate = outsideBuilder.template;
193
+ // if( !checkOutsideBuilder.hasTemplate ){
194
+ // outsideTemplate = [ outsideBuilder._query ];
195
+ // }
196
+ //
197
+ // outsideTemplate.forEach((element, elementIndex) => {
198
+ // if(selfTemplate.length > 0 && elementIndex===0 ){
199
+ // let lastElementResult = selfTemplate[selfTemplate.length - 1];
200
+ // lastElementResult = lastElementResult.trimEnd();
201
+ // if( lastElementResult[lastElementResult.length-1] !== ";" && !outsideBuilder.piece ) lastElementResult+= ";"
202
+ // selfTemplate[selfTemplate.length - 1] = lastElementResult+ "\n\n"+ element.trimStart();
203
+ // return
204
+ // }
205
+ // selfTemplate.push( element );
206
+ //
207
+ // });
208
+ // this.values.push( ... outsideBuilder.values );
209
+ // }
210
+ // builders.forEach( value => _push( value ) );
211
+ // }
212
+ //
213
+ // private checkSupportedJoin( builder:PostgresQueryBuilderResult ){
214
+ // let hasTemplate = !!builder.template && !!builder.template.length;
215
+ // let hasQuery = !!builder._query && !!builder._query.length;
216
+ // let hasValues = !!builder.values && !!builder.values.length && builder.values.length > 0
217
+ // if( !hasTemplate && hasValues ) return false;
218
+ // return { hasTemplate, hasQuery, hasValues };
219
+ //
220
+ // }
221
+ // }
222
+ // export function sql( sqlTemplate:TemplateStringsArray, ...values:any[]):QueryBuilderResult{
223
+ // let line = scriptUtil.lineOf( 1 );
224
+ // return new PostgresQueryBuilderResult(sqlTemplate, values.map(value => {
225
+ // if (value instanceof Escape) return value
226
+ // else return SQL.any(value)
227
+ // }), line);
228
+ // }
229
+ //
230
+ //
231
+ // sql.joins = ( ...builders:QueryBuilderResult[] )=>{
232
+ // let builder = builders.shift();
233
+ // if( !!builder && builders.length ) builder.push( ...builders );
234
+ // return builder;
235
+ // }
236
+ //
237
+ // sql.join = ( builders:QueryBuilderResult[] )=>{
238
+ // return sql.joins( ...(builders||[]) );
239
+ // }
240
+ //
241
+ // export function noAutoEscapeSql( sqlTemplate:TemplateStringsArray, ...values):PostgresQueryBuilderResult{
242
+ // let line = scriptUtil.lineOf( 1 );
243
+ // return new PostgresQueryBuilderResult( sqlTemplate, values, line );
244
+ // }
245
+ //
246
+ // export function queryJoin( ...prepared:QueryBuilderResult[] ):PostgresQueryBuilderResult {
247
+ // if( !prepared || !prepared.length ) throw new Error( "Query join is empty!");
248
+ // let superList = prepared;
249
+ // // @ts-ignore
250
+ // let joins = new QueryBuilderResult(undefined,undefined, prepared[ 0 ].line );
251
+ // superList.forEach( builder => {
252
+ // joins.push( builder );
253
+ // });
254
+ // return joins;
255
+ // }
256
+ //# sourceMappingURL=sql-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-builder.js","sourceRoot":"","sources":["sql-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,254 @@
1
+ // import {Escape, lit, oid, SQL} from "../utils/escape";
2
+ // import {ScriptLine, scriptUtil} from "../utils/script-util";
3
+ // import {QueryBuilderResult} from "@prisma-psm/core";
4
+ //
5
+ // export function literalEscape ( value:any){
6
+ // let textValue;
7
+ // if( value === null || value === undefined) textValue = "null";
8
+ // else if( typeof value === "string") textValue = lit( value );
9
+ // else if( typeof value === "number") textValue = value;
10
+ // else if( typeof value === "boolean") textValue = value;
11
+ // else if( typeof value === "object") textValue = lit( JSON.stringify( value ));
12
+ // return textValue;
13
+ // }
14
+ //
15
+ //
16
+ //
17
+ // export type PreparedQuery = {
18
+ // query:string,
19
+ // values:any[],
20
+ // line:ScriptLine
21
+ // }
22
+ //
23
+ // const CHECK = Symbol("check" );
24
+ //
25
+ //
26
+ // export class PostgresQueryBuilderResult implements QueryBuilderResult{
27
+ // escaped:any[];
28
+ // piece:boolean
29
+ // template:string[];
30
+ // private _query:string;
31
+ // public line:ScriptLine;
32
+ //
33
+ // constructor(template:TemplateStringsArray|string|string[], escaped:any[], line:ScriptLine ) {
34
+ // if( !line || !line?.filename ) throw new Error( `Script line is not declared` );
35
+ // if( line.filename.startsWith("node:internal")){
36
+ // throw new Error( `Invalid script line is internal capture`);
37
+ // }
38
+ //
39
+ // if( !escaped ) escaped = [];
40
+ // if( !template ) template = [];
41
+ // this.template = [];
42
+ // this.escaped = [];
43
+ //
44
+ // let hasTemplate = !!template?.length;
45
+ // let hasValue = !!escaped?.length;
46
+ // let hasCheck = !!arguments[2] || arguments[2] === CHECK;
47
+ // if( !hasTemplate && !hasCheck ) throw new Error( "Invalid Builder" );
48
+ //
49
+ //
50
+ // if( typeof template === "string" ){
51
+ // this._query = template;
52
+ // } else {
53
+ // this.template.push( ...template);
54
+ // }
55
+ // this.escaped.push( ...escaped );
56
+ // this.line = line;
57
+ // }
58
+ //
59
+ // get builderParts(){
60
+ // if( this.pieces.length+1 !== this.template.length ) throw new Error( "Inconsistency template builder" );
61
+ //
62
+ // let list:any[] = [];
63
+ // this.template.forEach( (value, index) => {
64
+ // list.push( value );
65
+ // if( index < this.pieces.length ) list.push( this.pieces[ index ]);
66
+ // });
67
+ // return list;
68
+ // }
69
+ //
70
+ //
71
+ // parameterizedQuery():PreparedQuery{
72
+ // if( !!this._query ){
73
+ // let values = this.values.map( value => {
74
+ // if( value instanceof Escape ) return value.value;
75
+ // else return value;
76
+ // })
77
+ // return {
78
+ // query: this._query,
79
+ // values: values,
80
+ // line: this.line
81
+ // };
82
+ // } else {
83
+ // let argIndex = 1;
84
+ // let queryParts = this.builderParts.map( (value, index) => {
85
+ // if( (index %2) === 0 ){
86
+ // return value;
87
+ // }
88
+ //
89
+ // if( value instanceof Escape && value.mode === "type" && value.asArray){
90
+ // return '$'+(argIndex++)+"::"+value.type+"[]";
91
+ // } else if( value instanceof Escape && value.mode === "type" ){
92
+ // return '$'+(argIndex++)+"::"+value.type;
93
+ // }
94
+ //
95
+ // if( value instanceof Escape && value.mode === "identifier" ){
96
+ // return oid( value.value );
97
+ // }
98
+ //
99
+ // if( value === null || value === undefined){
100
+ // return "null";
101
+ // } else {
102
+ // return '$'+(argIndex++);
103
+ // }
104
+ // });
105
+ //
106
+ // let values = this.values.filter( value => {
107
+ // if( value instanceof Escape && value.mode === "identifier" ) return;
108
+ // else return value !== null && value !== undefined;
109
+ // }).map( value => {
110
+ // if( value instanceof Escape ) {
111
+ // if( value.value === null || value.value === undefined ) return null;
112
+ // if( value.type === "jsonb" && typeof value.value === "object" ) return JSON.stringify( value.value );
113
+ // if( value.type === "json" && typeof value.value === "object" ) return JSON.stringify( value.value );
114
+ // return value.value;
115
+ // }
116
+ // else return value;
117
+ // })
118
+ //
119
+ // return {
120
+ // query: queryParts.join(""),
121
+ // values: values,
122
+ // line: this.line
123
+ // }
124
+ // }
125
+ // }
126
+ //
127
+ // add( sqlPart:string, sqlValue:any ){
128
+ // this.template.push( sqlPart );
129
+ // this.values.push( sqlValue );
130
+ // }
131
+ // noParameterizedQuery():PreparedQuery{
132
+ // if( !!this._query ){
133
+ // return {
134
+ // line: this.line,
135
+ // query: this._query,
136
+ // values: null
137
+ // };
138
+ // } else {
139
+ // let queryParts = this.builderParts.map( (value, index) => {
140
+ // let _scape;
141
+ // if ((index % 2) === 0) {
142
+ // return value;
143
+ //
144
+ // }else if( value instanceof Escape && value.mode === "literal") {
145
+ // return lit( value.value?.toString?.()||null )
146
+ // } else if( value instanceof Escape && (value.mode === "unsafe" || value.mode === "keyword")){
147
+ // _scape = value.value;
148
+ // } else if( value instanceof Escape && value.mode === "type" ){
149
+ // let preEscape = value.literal();
150
+ // let textValue = literalEscape( preEscape );
151
+ // // let textValue = value.literal();
152
+ // let _as = "";
153
+ // if( value.type && value.type.length && value.asArray ) _as = `::${value.type}[]`;
154
+ // else if( value.type && value.type.length ) _as = `::${value.type}`;
155
+ // _scape = textValue+_as;
156
+ // } else if( value instanceof Escape && value.mode === "identifier" ){
157
+ // _scape= oid( value.value );
158
+ // } else {
159
+ // _scape = literalEscape( value )
160
+ // }return _scape;
161
+ // });
162
+ //
163
+ // let str = queryParts.join("");
164
+ // return {
165
+ // query: str,
166
+ // values: null,
167
+ // line: this.line
168
+ // }
169
+ // }
170
+ // }
171
+ //
172
+ //
173
+ // push( ...builders:QueryBuilderResult[] ){
174
+ // let _push = ( outsideBuilder:QueryBuilderResult)=>{
175
+ // let checkOutsideBuilder = this.checkSupportedJoin( outsideBuilder );
176
+ // if( !checkOutsideBuilder ) throw new Error( "Unsupported outside builder" );
177
+ // let checkSelfBuilder = this.checkSupportedJoin( this );
178
+ // if( !checkSelfBuilder ) {
179
+ // throw new Error("Current builder no support join");
180
+ // }
181
+ //
182
+ // if( !checkSelfBuilder.hasTemplate ) {
183
+ // this.template = [];
184
+ // if( checkSelfBuilder.hasQuery ){
185
+ // this.template.push( this._query );
186
+ // this._query = null;
187
+ // }
188
+ // }
189
+ //
190
+ // let selfTemplate = this.template;
191
+ // let outsideTemplate = outsideBuilder.template;
192
+ // if( !checkOutsideBuilder.hasTemplate ){
193
+ // outsideTemplate = [ outsideBuilder._query ];
194
+ // }
195
+ //
196
+ // outsideTemplate.forEach((element, elementIndex) => {
197
+ // if(selfTemplate.length > 0 && elementIndex===0 ){
198
+ // let lastElementResult = selfTemplate[selfTemplate.length - 1];
199
+ // lastElementResult = lastElementResult.trimEnd();
200
+ // if( lastElementResult[lastElementResult.length-1] !== ";" && !outsideBuilder.piece ) lastElementResult+= ";"
201
+ // selfTemplate[selfTemplate.length - 1] = lastElementResult+ "\n\n"+ element.trimStart();
202
+ // return
203
+ // }
204
+ // selfTemplate.push( element );
205
+ //
206
+ // });
207
+ // this.values.push( ... outsideBuilder.values );
208
+ // }
209
+ // builders.forEach( value => _push( value ) );
210
+ // }
211
+ //
212
+ // private checkSupportedJoin( builder:PostgresQueryBuilderResult ){
213
+ // let hasTemplate = !!builder.template && !!builder.template.length;
214
+ // let hasQuery = !!builder._query && !!builder._query.length;
215
+ // let hasValues = !!builder.values && !!builder.values.length && builder.values.length > 0
216
+ // if( !hasTemplate && hasValues ) return false;
217
+ // return { hasTemplate, hasQuery, hasValues };
218
+ //
219
+ // }
220
+ // }
221
+ // export function sql( sqlTemplate:TemplateStringsArray, ...values:any[]):QueryBuilderResult{
222
+ // let line = scriptUtil.lineOf( 1 );
223
+ // return new PostgresQueryBuilderResult(sqlTemplate, values.map(value => {
224
+ // if (value instanceof Escape) return value
225
+ // else return SQL.any(value)
226
+ // }), line);
227
+ // }
228
+ //
229
+ //
230
+ // sql.joins = ( ...builders:QueryBuilderResult[] )=>{
231
+ // let builder = builders.shift();
232
+ // if( !!builder && builders.length ) builder.push( ...builders );
233
+ // return builder;
234
+ // }
235
+ //
236
+ // sql.join = ( builders:QueryBuilderResult[] )=>{
237
+ // return sql.joins( ...(builders||[]) );
238
+ // }
239
+ //
240
+ // export function noAutoEscapeSql( sqlTemplate:TemplateStringsArray, ...values):PostgresQueryBuilderResult{
241
+ // let line = scriptUtil.lineOf( 1 );
242
+ // return new PostgresQueryBuilderResult( sqlTemplate, values, line );
243
+ // }
244
+ //
245
+ // export function queryJoin( ...prepared:QueryBuilderResult[] ):PostgresQueryBuilderResult {
246
+ // if( !prepared || !prepared.length ) throw new Error( "Query join is empty!");
247
+ // let superList = prepared;
248
+ // // @ts-ignore
249
+ // let joins = new QueryBuilderResult(undefined,undefined, prepared[ 0 ].line );
250
+ // superList.forEach( builder => {
251
+ // joins.push( builder );
252
+ // });
253
+ // return joins;
254
+ // }
@@ -1,3 +1,7 @@
1
1
  export declare function oid(string: string): string;
2
- export declare function val(string: string): string;
2
+ export declare function lit(string: string, type?: string): string;
3
+ export declare const VARCHAR = "varchar";
4
+ export declare const TEXT = "text";
5
+ export declare const DOUBLE = "double precision";
6
+ export declare const NUMERIC = "numeric";
3
7
  //# sourceMappingURL=escape.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"escape.d.ts","sourceRoot":"","sources":["escape.ts"],"names":[],"mappings":"AAkBA,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAa1C;AACD,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,UAGjC"}
1
+ {"version":3,"file":"escape.d.ts","sourceRoot":"","sources":["escape.ts"],"names":[],"mappings":"AAmBA,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAa1C;AACD,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAC,MAAM,UAK/C;AAED,eAAO,MAAM,OAAO,YAAU,CAAC;AAC/B,eAAO,MAAM,IAAI,SAAO,CAAC;AACzB,eAAO,MAAM,MAAM,qBAAmB,CAAC;AACvC,eAAO,MAAM,OAAO,YAAU,CAAC"}