@memberjunction/global 2.69.1 → 2.70.0

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/util.d.ts CHANGED
@@ -11,10 +11,66 @@ export declare function GetGlobalObjectStore(): typeof globalThis;
11
11
  */
12
12
  export declare function CopyScalarsAndArrays<T extends object>(input: T): Partial<T>;
13
13
  /**
14
- * This function takes in an input string and attempts to clean it up to return a valid JSON string. This function will attempt to extract JSON from a Markdown code block if it exists,
15
- * otherwise it will attempt to extract JSON from the input string itself. If the input string is not valid JSON, this function will return null.
16
- * @param inputString
17
- * @returns
14
+ * Combines CleanJSON and SafeJSONParse to clean, extract, and parse JSON in one operation.
15
+ * This is a convenience function that first cleans the input string using CleanJSON to handle
16
+ * various formats (double-escaped, markdown blocks, etc.), then safely parses the result.
17
+ *
18
+ * @param inputString - The string to clean and parse, which may contain JSON in various formats
19
+ * @param logErrors - If true, parsing errors will be logged to console (default: false)
20
+ * @returns The parsed object of type T, or null if cleaning/parsing fails
21
+ *
22
+ * @example
23
+ * // Parse double-escaped JSON
24
+ * const result = CleanAndParseJSON<{name: string}>('{\\"name\\": \\"test\\"}', true);
25
+ * // Returns: {name: "test"}
26
+ *
27
+ * @example
28
+ * // Parse JSON from markdown
29
+ * const data = CleanAndParseJSON<{id: number}>('```json\n{"id": 123}\n```', false);
30
+ * // Returns: {id: 123}
31
+ *
32
+ * @example
33
+ * // Parse complex AI response with type safety
34
+ * interface AIResponse {
35
+ * status: string;
36
+ * data: any;
37
+ * }
38
+ * const response = CleanAndParseJSON<AIResponse>(aiOutput, true);
39
+ * // Returns typed object or null
40
+ */
41
+ export declare function CleanAndParseJSON<T = any>(inputString: string | null, logErrors?: boolean): T;
42
+ /**
43
+ * Cleans and extracts valid JSON from various input formats including double-escaped strings,
44
+ * strings with embedded JSON, and markdown code blocks.
45
+ *
46
+ * This function handles multiple scenarios in the following priority order:
47
+ * 1. **Valid JSON**: If the input is already valid JSON, it returns it formatted
48
+ * 2. **Double-escaped JSON**: Handles strings with escaped quotes (\\") and newlines (\\n)
49
+ * 3. **Markdown blocks**: Extracts JSON from ```json code blocks (only as last resort)
50
+ * 4. **Mixed content**: Extracts JSON objects/arrays from strings with surrounding text
51
+ *
52
+ * @param inputString - The string to process, which may contain JSON in various formats
53
+ * @returns A formatted JSON string if valid JSON is found, otherwise null
54
+ *
55
+ * @example
56
+ * // Simple JSON
57
+ * CleanJSON('{"name": "test"}')
58
+ * // Returns: '{\n "name": "test"\n}'
59
+ *
60
+ * @example
61
+ * // Double-escaped JSON
62
+ * CleanJSON('{\\"name\\": \\"test\\", \\"value\\": 123}')
63
+ * // Returns: '{\n "name": "test",\n "value": 123\n}'
64
+ *
65
+ * @example
66
+ * // JSON with embedded markdown (preserves the markdown in string values)
67
+ * CleanJSON('{"text": "```json\\n{\\"inner\\": true}\\n```"}')
68
+ * // Returns: '{\n "text": "```json\\n{\\"inner\\": true}\\n```"\n}'
69
+ *
70
+ * @example
71
+ * // Markdown block extraction (only when not valid JSON)
72
+ * CleanJSON('Some text ```json\n{"extracted": true}\n``` more text')
73
+ * // Returns: '{\n "extracted": true\n}'
18
74
  */
19
75
  export declare function CleanJSON(inputString: string | null): string | null;
20
76
  /**
@@ -24,11 +80,27 @@ export declare function CleanJSON(inputString: string | null): string | null;
24
80
  */
25
81
  export declare function CleanJavaScript(javaScriptCode: string): string;
26
82
  /**
27
- * Simple wrapper method to JSON.parse that catches any errors and logs them to the console. This method is useful when you want to parse JSON but don't want to crash the application if the JSON is invalid.
28
- * @param jsonString
29
- * @returns
83
+ * Simple wrapper method to JSON.parse that catches any errors and optionally logs them to the console.
84
+ * This method is useful when you want to parse JSON but don't want to crash the application if the JSON is invalid.
85
+ *
86
+ * @param jsonString - The JSON string to parse
87
+ * @param logErrors - If true, parsing errors will be logged to console (default: false)
88
+ * @returns The parsed object of type T (default: any), or null if parsing fails or input is empty
89
+ *
90
+ * @example
91
+ * // Basic usage without type
92
+ * const data = SafeJSONParse('{"name": "test"}');
93
+ *
94
+ * @example
95
+ * // With type parameter
96
+ * interface User { name: string; age: number; }
97
+ * const user = SafeJSONParse<User>('{"name": "John", "age": 30}', true);
98
+ *
99
+ * @example
100
+ * // Invalid JSON returns null
101
+ * const result = SafeJSONParse('invalid json', true); // logs error, returns null
30
102
  */
31
- export declare function SafeJSONParse<T>(jsonString: string, logErrors?: boolean): T;
103
+ export declare function SafeJSONParse<T = any>(jsonString: string, logErrors?: boolean): T;
32
104
  /**
33
105
  * This function takes in a string of text(assuming markdown, or just newline formatted), and converts it to an HTML list. The list type can be either ordered or unordered.
34
106
  * @param htmlListType
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,oBAAoB,sBA4BnC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAiB3E;AAGD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAmDnE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAe9D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,GAAE,OAAe,GAAG,CAAC,CAQlF;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,SAAS,GAAG,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAa3G;AAOD;;;;;EAKE;AACF,wBAAgB,4BAA4B,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAc9D;AAGD;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAMjD;AAuED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEtE;AAuCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAG;IAAE,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAwCnJ;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IACjD,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,wBAAwB,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAuBhD;AAID;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,GAAG,MAAM,CAerG;AAGD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAalD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,GAAE,MAAW,EAAE,SAAS,GAAE,GAAU,QAS3E;AAED;;;GAGG;AACH,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAGD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,GAAE,OAAc,GAAG,MAAM,EAAE,CA4CvG;AASD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oHAAoH;IACpH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iEAAiE;IACjE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAmBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,gBAAqB,GAAG,GAAG,CAUhF"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
package/dist/util.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ParseJSONRecursive = exports.compareStringsByLine = exports.uuidv4 = exports.InvokeManualResize = exports.replaceAllSpaces = exports.stripTrailingChars = exports.adjustCasing = exports.generatePluralName = exports.getIrregularPlural = exports.stripWhitespace = exports.convertCamelCaseToHaveSpaces = exports.ConvertMarkdownStringToHtmlList = exports.SafeJSONParse = exports.CleanJavaScript = exports.CleanJSON = exports.CopyScalarsAndArrays = exports.GetGlobalObjectStore = void 0;
3
+ exports.ParseJSONRecursive = exports.compareStringsByLine = exports.uuidv4 = exports.InvokeManualResize = exports.replaceAllSpaces = exports.stripTrailingChars = exports.adjustCasing = exports.generatePluralName = exports.getIrregularPlural = exports.stripWhitespace = exports.convertCamelCaseToHaveSpaces = exports.ConvertMarkdownStringToHtmlList = exports.SafeJSONParse = exports.CleanJavaScript = exports.CleanJSON = exports.CleanAndParseJSON = exports.CopyScalarsAndArrays = exports.GetGlobalObjectStore = void 0;
4
4
  const _1 = require(".");
5
5
  const interface_1 = require("./interface");
6
6
  const uuid_1 = require("uuid");
@@ -66,16 +66,117 @@ function CopyScalarsAndArrays(input) {
66
66
  }
67
67
  exports.CopyScalarsAndArrays = CopyScalarsAndArrays;
68
68
  /**
69
- * This function takes in an input string and attempts to clean it up to return a valid JSON string. This function will attempt to extract JSON from a Markdown code block if it exists,
70
- * otherwise it will attempt to extract JSON from the input string itself. If the input string is not valid JSON, this function will return null.
71
- * @param inputString
72
- * @returns
69
+ * Combines CleanJSON and SafeJSONParse to clean, extract, and parse JSON in one operation.
70
+ * This is a convenience function that first cleans the input string using CleanJSON to handle
71
+ * various formats (double-escaped, markdown blocks, etc.), then safely parses the result.
72
+ *
73
+ * @param inputString - The string to clean and parse, which may contain JSON in various formats
74
+ * @param logErrors - If true, parsing errors will be logged to console (default: false)
75
+ * @returns The parsed object of type T, or null if cleaning/parsing fails
76
+ *
77
+ * @example
78
+ * // Parse double-escaped JSON
79
+ * const result = CleanAndParseJSON<{name: string}>('{\\"name\\": \\"test\\"}', true);
80
+ * // Returns: {name: "test"}
81
+ *
82
+ * @example
83
+ * // Parse JSON from markdown
84
+ * const data = CleanAndParseJSON<{id: number}>('```json\n{"id": 123}\n```', false);
85
+ * // Returns: {id: 123}
86
+ *
87
+ * @example
88
+ * // Parse complex AI response with type safety
89
+ * interface AIResponse {
90
+ * status: string;
91
+ * data: any;
92
+ * }
93
+ * const response = CleanAndParseJSON<AIResponse>(aiOutput, true);
94
+ * // Returns typed object or null
95
+ */
96
+ function CleanAndParseJSON(inputString, logErrors = false) {
97
+ if (!inputString) {
98
+ return null;
99
+ }
100
+ return SafeJSONParse(CleanJSON(inputString), logErrors);
101
+ }
102
+ exports.CleanAndParseJSON = CleanAndParseJSON;
103
+ /**
104
+ * Cleans and extracts valid JSON from various input formats including double-escaped strings,
105
+ * strings with embedded JSON, and markdown code blocks.
106
+ *
107
+ * This function handles multiple scenarios in the following priority order:
108
+ * 1. **Valid JSON**: If the input is already valid JSON, it returns it formatted
109
+ * 2. **Double-escaped JSON**: Handles strings with escaped quotes (\\") and newlines (\\n)
110
+ * 3. **Markdown blocks**: Extracts JSON from ```json code blocks (only as last resort)
111
+ * 4. **Mixed content**: Extracts JSON objects/arrays from strings with surrounding text
112
+ *
113
+ * @param inputString - The string to process, which may contain JSON in various formats
114
+ * @returns A formatted JSON string if valid JSON is found, otherwise null
115
+ *
116
+ * @example
117
+ * // Simple JSON
118
+ * CleanJSON('{"name": "test"}')
119
+ * // Returns: '{\n "name": "test"\n}'
120
+ *
121
+ * @example
122
+ * // Double-escaped JSON
123
+ * CleanJSON('{\\"name\\": \\"test\\", \\"value\\": 123}')
124
+ * // Returns: '{\n "name": "test",\n "value": 123\n}'
125
+ *
126
+ * @example
127
+ * // JSON with embedded markdown (preserves the markdown in string values)
128
+ * CleanJSON('{"text": "```json\\n{\\"inner\\": true}\\n```"}')
129
+ * // Returns: '{\n "text": "```json\\n{\\"inner\\": true}\\n```"\n}'
130
+ *
131
+ * @example
132
+ * // Markdown block extraction (only when not valid JSON)
133
+ * CleanJSON('Some text ```json\n{"extracted": true}\n``` more text')
134
+ * // Returns: '{\n "extracted": true\n}'
73
135
  */
74
136
  function CleanJSON(inputString) {
75
137
  if (!inputString)
76
138
  return null;
77
- // replace all \n and \t with nothing
78
- const jsonString = inputString.trim().replace(/\n/g, "").replace(/\t/g, "");
139
+ let processedString = inputString.trim();
140
+ // First, try to parse the string as-is
141
+ // This preserves any embedded JSON or markdown blocks within string values
142
+ try {
143
+ const parsed = JSON.parse(processedString);
144
+ // If successful, return formatted JSON
145
+ return JSON.stringify(parsed, null, 2);
146
+ }
147
+ catch (e) {
148
+ // If direct parsing fails, continue with cleanup logic
149
+ }
150
+ // Handle double-escaped characters
151
+ // This converts \\n to actual \n, \\" to actual ", etc.
152
+ if (processedString.includes('\\\\') || processedString.includes('\\"')) {
153
+ try {
154
+ // Try to parse it as a JSON string to unescape it
155
+ // This handles cases where the entire string is a JSON-encoded string
156
+ processedString = JSON.parse('"' + processedString + '"');
157
+ }
158
+ catch (e) {
159
+ // If that doesn't work, manually replace common double-escaped sequences
160
+ processedString = processedString
161
+ .replace(/\\\\n/g, '\n') // \\n -> \n
162
+ .replace(/\\\\t/g, '\t') // \\t -> \t
163
+ .replace(/\\\\r/g, '\r') // \\r -> \r
164
+ .replace(/\\\\"/g, '"') // \\" -> "
165
+ .replace(/\\\\\\/g, '\\'); // \\\\ -> \\
166
+ }
167
+ }
168
+ // Try to parse the processed string after unescaping
169
+ try {
170
+ const parsed = JSON.parse(processedString);
171
+ // If successful, return formatted JSON
172
+ return JSON.stringify(parsed, null, 2);
173
+ }
174
+ catch (e) {
175
+ // If direct parsing still fails, continue with extraction logic
176
+ }
177
+ // Now proceed with the extraction logic only as a last resort
178
+ // replace all \n and \t with nothing for easier pattern matching
179
+ const jsonString = processedString.replace(/\n/g, "").replace(/\t/g, "");
79
180
  // Regular expression to match JavaScript code blocks within Markdown fences
80
181
  // This regex looks for ``` optionally followed by js or javascript (case-insensitive), then captures until the closing ```
81
182
  const markdownRegex = /```(?:json|JSON)?\s*([\s\S]*?)```/gi;
@@ -83,7 +184,32 @@ function CleanJSON(inputString) {
83
184
  const matches = Array.from(jsonString.matchAll(markdownRegex));
84
185
  if (matches.length > 0) {
85
186
  // If there are matches, concatenate all captured groups (in case there are multiple code blocks)
86
- return matches.map(match => match[1].trim()).join('\n');
187
+ const extracted = matches.map(match => match[1].trim()).join('\n');
188
+ try {
189
+ // try to parse the extracted content as JSON
190
+ const parsed = JSON.parse(extracted);
191
+ return JSON.stringify(parsed, null, 2);
192
+ }
193
+ catch (e) {
194
+ // if we get here, it means the extracted content is not valid JSON so try to clean it
195
+ // and return it as a string
196
+ try {
197
+ // Clean up any remaining escape sequences in the extracted content
198
+ const cleaned = extracted
199
+ .replace(/\\n/g, '\n')
200
+ .replace(/\\t/g, '\t')
201
+ .replace(/\\r/g, '\r')
202
+ .replace(/\\"/g, '"')
203
+ .replace(/\\\\/g, '\\');
204
+ // Try to parse the cleaned JSON
205
+ const parsed = JSON.parse(cleaned);
206
+ return JSON.stringify(parsed, null, 2);
207
+ }
208
+ catch (e) {
209
+ // If parsing fails, return the original extracted string as we couldn't parse either
210
+ return extracted;
211
+ }
212
+ }
87
213
  }
88
214
  else {
89
215
  // If there are no Markdown code fences, we could have a string that contains JSON, or is JUST JSON
@@ -103,7 +229,7 @@ function CleanJSON(inputString) {
103
229
  }
104
230
  if (startIndex === -1 || endIndex === -1 || endIndex < startIndex) {
105
231
  console.warn("No JSON found in the input.");
106
- return jsonString.trim();
232
+ return processedString; // Return the processed string instead of jsonString
107
233
  }
108
234
  const potentialJSON = jsonString.substring(startIndex, endIndex + 1);
109
235
  try {
@@ -142,11 +268,30 @@ function CleanJavaScript(javaScriptCode) {
142
268
  }
143
269
  exports.CleanJavaScript = CleanJavaScript;
144
270
  /**
145
- * Simple wrapper method to JSON.parse that catches any errors and logs them to the console. This method is useful when you want to parse JSON but don't want to crash the application if the JSON is invalid.
146
- * @param jsonString
147
- * @returns
271
+ * Simple wrapper method to JSON.parse that catches any errors and optionally logs them to the console.
272
+ * This method is useful when you want to parse JSON but don't want to crash the application if the JSON is invalid.
273
+ *
274
+ * @param jsonString - The JSON string to parse
275
+ * @param logErrors - If true, parsing errors will be logged to console (default: false)
276
+ * @returns The parsed object of type T (default: any), or null if parsing fails or input is empty
277
+ *
278
+ * @example
279
+ * // Basic usage without type
280
+ * const data = SafeJSONParse('{"name": "test"}');
281
+ *
282
+ * @example
283
+ * // With type parameter
284
+ * interface User { name: string; age: number; }
285
+ * const user = SafeJSONParse<User>('{"name": "John", "age": 30}', true);
286
+ *
287
+ * @example
288
+ * // Invalid JSON returns null
289
+ * const result = SafeJSONParse('invalid json', true); // logs error, returns null
148
290
  */
149
291
  function SafeJSONParse(jsonString, logErrors = false) {
292
+ if (!jsonString) {
293
+ return null;
294
+ }
150
295
  try {
151
296
  return JSON.parse(jsonString);
152
297
  }
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/global",
3
- "version": "2.69.1",
3
+ "version": "2.70.0",
4
4
  "description": "MemberJunction: Global Object - Needed for ALL other MJ components",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/readme.md CHANGED
@@ -519,9 +519,6 @@ replaceAllSpaces('Hello World'); // "HelloWorld"
519
519
  ```typescript
520
520
  import { CleanJSON, SafeJSONParse, ParseJSONRecursive } from '@memberjunction/global';
521
521
 
522
- // Clean and extract JSON from markdown or mixed content
523
- const cleaned = CleanJSON('```json\n{"key": "value"}\n```');
524
-
525
522
  // Safe JSON parsing with error handling
526
523
  const parsed = SafeJSONParse<MyType>('{"key": "value"}', true);
527
524
 
@@ -554,6 +551,95 @@ const deeplyNested = ParseJSONRecursive(complexData, {
554
551
  });
555
552
  ```
556
553
 
554
+ #### CleanJSON Function
555
+
556
+ The `CleanJSON` function intelligently extracts and cleans JSON from various input formats, including double-escaped strings, strings with embedded JSON, and markdown code blocks. It's particularly useful when dealing with AI-generated responses or data from external systems that may have inconsistent JSON formatting.
557
+
558
+ **Processing Order:**
559
+ 1. First attempts to parse the input as valid JSON (preserving embedded content)
560
+ 2. If that fails, handles double-escaped characters (`\\n`, `\\"`, etc.)
561
+ 3. Only extracts from markdown blocks or inline JSON as a last resort
562
+
563
+ ```typescript
564
+ import { CleanJSON } from '@memberjunction/global';
565
+
566
+ // Example 1: Already valid JSON - returns formatted
567
+ const valid = CleanJSON('{"name": "test", "value": 123}');
568
+ // Returns:
569
+ // {
570
+ // "name": "test",
571
+ // "value": 123
572
+ // }
573
+
574
+ // Example 2: Double-escaped JSON string
575
+ const escaped = CleanJSON('{\\"name\\": \\"test\\", \\"value\\": 123}');
576
+ // Returns:
577
+ // {
578
+ // "name": "test",
579
+ // "value": 123
580
+ // }
581
+
582
+ // Example 3: JSON with escaped newlines (common from AI responses)
583
+ const withNewlines = CleanJSON('\\n{\\"mode\\": \\"test\\",\\n\\"data\\": [1, 2, 3]}\\n');
584
+ // Returns:
585
+ // {
586
+ // "mode": "test",
587
+ // "data": [1, 2, 3]
588
+ // }
589
+
590
+ // Example 4: Complex JSON with embedded markdown (preserves the markdown)
591
+ const complexJson = CleanJSON(`{
592
+ "taskComplete": false,
593
+ "message": "Processing complete",
594
+ "nextAction": {
595
+ "type": "design",
596
+ "payload": {
597
+ "outputFormat": "\`\`\`json\\n{\\"componentName\\": \\"Example\\"}\\n\`\`\`"
598
+ }
599
+ }
600
+ }`);
601
+ // Returns the JSON with the markdown code block preserved in the outputFormat field
602
+
603
+ // Example 5: Extract JSON from markdown (only when input isn't valid JSON)
604
+ const markdown = CleanJSON('Some text ```json\n{"extracted": true}\n``` more text');
605
+ // Returns:
606
+ // {
607
+ // "extracted": true
608
+ // }
609
+
610
+ // Example 6: Extract inline JSON from mixed text
611
+ const mixed = CleanJSON('Response: {"status": "success", "code": 200} - Done');
612
+ // Returns:
613
+ // {
614
+ // "status": "success",
615
+ // "code": 200
616
+ // }
617
+
618
+ // Example 7: Complex real-world example with nested escaped JSON
619
+ const aiResponse = CleanJSON(`{
620
+ "analysis": "Complete",
621
+ "data": "{\\"users\\": [{\\"name\\": \\"John\\", \\"active\\": true}]}",
622
+ "metadata": {
623
+ "template": "\`\`\`json\\n{\\"format\\": \\"standard\\"}\\n\`\`\`"
624
+ }
625
+ }`);
626
+ // Returns properly formatted JSON with all nested structures intact
627
+ ```
628
+
629
+ **Key Features:**
630
+ - **Preserves embedded content**: When the input is valid JSON, markdown blocks and escaped strings within values are preserved
631
+ - **Smart unescaping**: Handles `\\n` → `\n`, `\\"` → `"`, `\\\\` → `\` and other common escape sequences
632
+ - **Markdown extraction**: Extracts JSON from ` ```json ` code blocks when needed
633
+ - **Inline extraction**: Finds JSON objects/arrays within surrounding text
634
+ - **Null safety**: Returns `null` for invalid inputs instead of throwing errors
635
+
636
+ **Common Use Cases:**
637
+ - Processing AI model responses that may contain escaped JSON
638
+ - Cleaning data from external APIs with inconsistent formatting
639
+ - Extracting JSON from log files or debug output
640
+ - Handling JSON strings stored in databases that may be double-escaped
641
+ - Processing user input that may contain JSON in various formats
642
+
557
643
  ### HTML Conversion
558
644
 
559
645
  ```typescript
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ClassUtils.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClassUtils.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/ClassUtils.test.ts"],"names":[],"mappings":""}
@@ -1,173 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const ClassUtils_1 = require("../ClassUtils");
4
- // Test class hierarchy
5
- class Animal {
6
- constructor() {
7
- this.name = '';
8
- }
9
- }
10
- class Mammal extends Animal {
11
- constructor() {
12
- super(...arguments);
13
- this.furColor = '';
14
- }
15
- }
16
- class Dog extends Mammal {
17
- constructor() {
18
- super(...arguments);
19
- this.breed = '';
20
- }
21
- }
22
- class GoldenRetriever extends Dog {
23
- constructor() {
24
- super(...arguments);
25
- this.temperament = 'friendly';
26
- }
27
- }
28
- // Test cases
29
- describe('ClassUtils', () => {
30
- describe('GetSuperclass', () => {
31
- it('should return immediate superclass', () => {
32
- expect((0, ClassUtils_1.GetSuperclass)(GoldenRetriever)).toBe(Dog);
33
- expect((0, ClassUtils_1.GetSuperclass)(Dog)).toBe(Mammal);
34
- expect((0, ClassUtils_1.GetSuperclass)(Mammal)).toBe(Animal);
35
- expect((0, ClassUtils_1.GetSuperclass)(Animal)).toBe(null);
36
- });
37
- it('should handle invalid inputs', () => {
38
- expect((0, ClassUtils_1.GetSuperclass)(null)).toBe(null);
39
- expect((0, ClassUtils_1.GetSuperclass)(undefined)).toBe(null);
40
- expect((0, ClassUtils_1.GetSuperclass)({})).toBe(null);
41
- expect((0, ClassUtils_1.GetSuperclass)('not a class')).toBe(null);
42
- });
43
- });
44
- describe('GetRootClass', () => {
45
- it('should return the root class', () => {
46
- expect((0, ClassUtils_1.GetRootClass)(GoldenRetriever)).toBe(Animal);
47
- expect((0, ClassUtils_1.GetRootClass)(Dog)).toBe(Animal);
48
- expect((0, ClassUtils_1.GetRootClass)(Animal)).toBe(Animal);
49
- });
50
- it('should handle classes without inheritance', () => {
51
- class Standalone {
52
- }
53
- expect((0, ClassUtils_1.GetRootClass)(Standalone)).toBe(Standalone);
54
- });
55
- });
56
- describe('IsSubclassOf', () => {
57
- it('should correctly identify subclass relationships', () => {
58
- expect((0, ClassUtils_1.IsSubclassOf)(GoldenRetriever, Dog)).toBe(true);
59
- expect((0, ClassUtils_1.IsSubclassOf)(GoldenRetriever, Mammal)).toBe(true);
60
- expect((0, ClassUtils_1.IsSubclassOf)(GoldenRetriever, Animal)).toBe(true);
61
- expect((0, ClassUtils_1.IsSubclassOf)(Dog, Animal)).toBe(true);
62
- });
63
- it('should return false for non-subclass relationships', () => {
64
- expect((0, ClassUtils_1.IsSubclassOf)(Animal, Dog)).toBe(false);
65
- expect((0, ClassUtils_1.IsSubclassOf)(Dog, GoldenRetriever)).toBe(false);
66
- expect((0, ClassUtils_1.IsSubclassOf)(Dog, Dog)).toBe(false); // Not a subclass of itself
67
- });
68
- it('should handle invalid inputs', () => {
69
- expect((0, ClassUtils_1.IsSubclassOf)(null, Animal)).toBe(false);
70
- expect((0, ClassUtils_1.IsSubclassOf)(Dog, null)).toBe(false);
71
- expect((0, ClassUtils_1.IsSubclassOf)('not a class', Animal)).toBe(false);
72
- });
73
- });
74
- describe('IsRootClass', () => {
75
- it('should identify root classes', () => {
76
- expect((0, ClassUtils_1.IsRootClass)(Animal)).toBe(true);
77
- class StandaloneClass {
78
- }
79
- expect((0, ClassUtils_1.IsRootClass)(StandaloneClass)).toBe(true);
80
- });
81
- it('should return false for classes with superclasses', () => {
82
- expect((0, ClassUtils_1.IsRootClass)(GoldenRetriever)).toBe(false);
83
- expect((0, ClassUtils_1.IsRootClass)(Dog)).toBe(false);
84
- expect((0, ClassUtils_1.IsRootClass)(Mammal)).toBe(false);
85
- });
86
- it('should handle invalid inputs', () => {
87
- expect((0, ClassUtils_1.IsRootClass)(null)).toBe(false);
88
- expect((0, ClassUtils_1.IsRootClass)(undefined)).toBe(false);
89
- expect((0, ClassUtils_1.IsRootClass)(42)).toBe(false);
90
- expect((0, ClassUtils_1.IsRootClass)('string')).toBe(false);
91
- expect((0, ClassUtils_1.IsRootClass)({})).toBe(false);
92
- });
93
- });
94
- describe('IsDescendantClassOf', () => {
95
- it('should work identically to IsSubclassOf', () => {
96
- // Test direct parent
97
- expect((0, ClassUtils_1.IsDescendantClassOf)(GoldenRetriever, Dog)).toBe(true);
98
- expect((0, ClassUtils_1.IsDescendantClassOf)(Dog, Mammal)).toBe(true);
99
- // Test grandparent and beyond
100
- expect((0, ClassUtils_1.IsDescendantClassOf)(GoldenRetriever, Mammal)).toBe(true);
101
- expect((0, ClassUtils_1.IsDescendantClassOf)(GoldenRetriever, Animal)).toBe(true);
102
- // Test non-relationships
103
- expect((0, ClassUtils_1.IsDescendantClassOf)(Animal, GoldenRetriever)).toBe(false);
104
- expect((0, ClassUtils_1.IsDescendantClassOf)(Dog, Dog)).toBe(false);
105
- });
106
- });
107
- describe('GetClassInheritance', () => {
108
- it('should return inheritance chain', () => {
109
- const chain = (0, ClassUtils_1.GetClassInheritance)(GoldenRetriever);
110
- expect(chain.length).toBe(3);
111
- expect(chain[0].name).toBe('Dog');
112
- expect(chain[0].reference).toBe(Dog);
113
- expect(chain[1].name).toBe('Mammal');
114
- expect(chain[1].reference).toBe(Mammal);
115
- expect(chain[2].name).toBe('Animal');
116
- expect(chain[2].reference).toBe(Animal);
117
- });
118
- it('should return empty array for base classes', () => {
119
- const chain = (0, ClassUtils_1.GetClassInheritance)(Animal);
120
- expect(chain.length).toBe(0);
121
- });
122
- });
123
- describe('GetFullClassHierarchy', () => {
124
- it('should include the class itself', () => {
125
- const hierarchy = (0, ClassUtils_1.GetFullClassHierarchy)(GoldenRetriever);
126
- expect(hierarchy.length).toBe(4);
127
- expect(hierarchy[0].name).toBe('GoldenRetriever');
128
- expect(hierarchy[0].reference).toBe(GoldenRetriever);
129
- expect(hierarchy[1].name).toBe('Dog');
130
- expect(hierarchy[2].name).toBe('Mammal');
131
- expect(hierarchy[3].name).toBe('Animal');
132
- });
133
- });
134
- describe('IsClassConstructor', () => {
135
- it('should identify class constructors', () => {
136
- expect((0, ClassUtils_1.IsClassConstructor)(Animal)).toBe(true);
137
- expect((0, ClassUtils_1.IsClassConstructor)(GoldenRetriever)).toBe(true);
138
- });
139
- it('should reject non-constructors', () => {
140
- expect((0, ClassUtils_1.IsClassConstructor)(() => { })).toBe(false);
141
- expect((0, ClassUtils_1.IsClassConstructor)(function regularFunction() { })).toBe(false);
142
- expect((0, ClassUtils_1.IsClassConstructor)(42)).toBe(false);
143
- expect((0, ClassUtils_1.IsClassConstructor)('string')).toBe(false);
144
- expect((0, ClassUtils_1.IsClassConstructor)({})).toBe(false);
145
- });
146
- it('should handle constructor functions', () => {
147
- function OldStyleClass() {
148
- this.property = 'value';
149
- }
150
- OldStyleClass.prototype.method = function () { };
151
- expect((0, ClassUtils_1.IsClassConstructor)(OldStyleClass)).toBe(true);
152
- });
153
- });
154
- describe('GetClassName', () => {
155
- it('should get class names', () => {
156
- expect((0, ClassUtils_1.GetClassName)(Animal)).toBe('Animal');
157
- expect((0, ClassUtils_1.GetClassName)(GoldenRetriever)).toBe('GoldenRetriever');
158
- });
159
- it('should handle anonymous classes', () => {
160
- const AnonClass = class {
161
- };
162
- // Note: This might return 'AnonClass' or 'Anonymous' depending on environment
163
- const name = (0, ClassUtils_1.GetClassName)(AnonClass);
164
- expect(['AnonClass', 'Anonymous'].includes(name)).toBe(true);
165
- });
166
- it('should handle invalid inputs', () => {
167
- expect((0, ClassUtils_1.GetClassName)(null)).toBe('Unknown');
168
- expect((0, ClassUtils_1.GetClassName)(undefined)).toBe('Unknown');
169
- expect((0, ClassUtils_1.GetClassName)(42)).toBe('Unknown');
170
- });
171
- });
172
- });
173
- //# sourceMappingURL=ClassUtils.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClassUtils.test.js","sourceRoot":"","sources":["../../src/__tests__/ClassUtils.test.ts"],"names":[],"mappings":"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"}