@cogitator-ai/wasm-tools 0.5.11 → 0.7.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.
Files changed (119) hide show
  1. package/README.md +85 -26
  2. package/dist/index.d.ts +22 -3
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +81 -14
  5. package/dist/index.js.map +1 -1
  6. package/dist/manager/types.d.ts +2 -0
  7. package/dist/manager/types.d.ts.map +1 -1
  8. package/dist/manager/wasm-loader.d.ts.map +1 -1
  9. package/dist/manager/wasm-loader.js +11 -2
  10. package/dist/manager/wasm-loader.js.map +1 -1
  11. package/dist/manager/wasm-tool-manager.d.ts +1 -0
  12. package/dist/manager/wasm-tool-manager.d.ts.map +1 -1
  13. package/dist/manager/wasm-tool-manager.js +56 -13
  14. package/dist/manager/wasm-tool-manager.js.map +1 -1
  15. package/dist/runtime.d.ts +11 -0
  16. package/dist/runtime.d.ts.map +1 -0
  17. package/dist/runtime.js +104 -0
  18. package/dist/runtime.js.map +1 -0
  19. package/dist/wasm/base64.wasm +0 -0
  20. package/dist/wasm/calc.wasm +0 -0
  21. package/dist/wasm/compression.wasm +0 -0
  22. package/dist/wasm/csv.wasm +0 -0
  23. package/dist/wasm/datetime.wasm +0 -0
  24. package/dist/wasm/diff.wasm +0 -0
  25. package/dist/wasm/hash.wasm +0 -0
  26. package/dist/wasm/json.wasm +0 -0
  27. package/dist/wasm/markdown.wasm +0 -0
  28. package/dist/wasm/regex.wasm +0 -0
  29. package/dist/wasm/signing.wasm +0 -0
  30. package/dist/wasm/slug.wasm +0 -0
  31. package/dist/wasm/validation.wasm +0 -0
  32. package/dist/wasm/xml.wasm +0 -0
  33. package/package.json +13 -12
  34. package/dist/__tests__/file-watcher.test.d.ts +0 -2
  35. package/dist/__tests__/file-watcher.test.d.ts.map +0 -1
  36. package/dist/__tests__/file-watcher.test.js +0 -99
  37. package/dist/__tests__/file-watcher.test.js.map +0 -1
  38. package/dist/__tests__/index.test.d.ts +0 -2
  39. package/dist/__tests__/index.test.d.ts.map +0 -1
  40. package/dist/__tests__/index.test.js +0 -226
  41. package/dist/__tests__/index.test.js.map +0 -1
  42. package/dist/__tests__/wasm-loader.test.d.ts +0 -2
  43. package/dist/__tests__/wasm-loader.test.d.ts.map +0 -1
  44. package/dist/__tests__/wasm-loader.test.js +0 -68
  45. package/dist/__tests__/wasm-loader.test.js.map +0 -1
  46. package/dist/__tests__/wasm-tool-manager.test.d.ts +0 -2
  47. package/dist/__tests__/wasm-tool-manager.test.d.ts.map +0 -1
  48. package/dist/__tests__/wasm-tool-manager.test.js +0 -166
  49. package/dist/__tests__/wasm-tool-manager.test.js.map +0 -1
  50. package/dist/plugins/base64.d.ts +0 -12
  51. package/dist/plugins/base64.d.ts.map +0 -1
  52. package/dist/plugins/base64.js +0 -144
  53. package/dist/plugins/base64.js.map +0 -1
  54. package/dist/plugins/calc.d.ts +0 -12
  55. package/dist/plugins/calc.d.ts.map +0 -1
  56. package/dist/plugins/calc.js +0 -102
  57. package/dist/plugins/calc.js.map +0 -1
  58. package/dist/plugins/compression.d.ts +0 -2
  59. package/dist/plugins/compression.d.ts.map +0 -1
  60. package/dist/plugins/compression.js +0 -549
  61. package/dist/plugins/compression.js.map +0 -1
  62. package/dist/plugins/csv.d.ts +0 -2
  63. package/dist/plugins/csv.d.ts.map +0 -1
  64. package/dist/plugins/csv.js +0 -142
  65. package/dist/plugins/csv.js.map +0 -1
  66. package/dist/plugins/datetime.d.ts +0 -2
  67. package/dist/plugins/datetime.d.ts.map +0 -1
  68. package/dist/plugins/datetime.js +0 -199
  69. package/dist/plugins/datetime.js.map +0 -1
  70. package/dist/plugins/diff.d.ts +0 -2
  71. package/dist/plugins/diff.d.ts.map +0 -1
  72. package/dist/plugins/diff.js +0 -187
  73. package/dist/plugins/diff.js.map +0 -1
  74. package/dist/plugins/hash.d.ts +0 -12
  75. package/dist/plugins/hash.d.ts.map +0 -1
  76. package/dist/plugins/hash.js +0 -310
  77. package/dist/plugins/hash.js.map +0 -1
  78. package/dist/plugins/json.d.ts +0 -12
  79. package/dist/plugins/json.d.ts.map +0 -1
  80. package/dist/plugins/json.js +0 -70
  81. package/dist/plugins/json.js.map +0 -1
  82. package/dist/plugins/markdown.d.ts +0 -2
  83. package/dist/plugins/markdown.d.ts.map +0 -1
  84. package/dist/plugins/markdown.js +0 -213
  85. package/dist/plugins/markdown.js.map +0 -1
  86. package/dist/plugins/regex.d.ts +0 -2
  87. package/dist/plugins/regex.d.ts.map +0 -1
  88. package/dist/plugins/regex.js +0 -120
  89. package/dist/plugins/regex.js.map +0 -1
  90. package/dist/plugins/signing.d.ts +0 -2
  91. package/dist/plugins/signing.d.ts.map +0 -1
  92. package/dist/plugins/signing.js +0 -589
  93. package/dist/plugins/signing.js.map +0 -1
  94. package/dist/plugins/slug.d.ts +0 -2
  95. package/dist/plugins/slug.d.ts.map +0 -1
  96. package/dist/plugins/slug.js +0 -183
  97. package/dist/plugins/slug.js.map +0 -1
  98. package/dist/plugins/validation.d.ts +0 -2
  99. package/dist/plugins/validation.d.ts.map +0 -1
  100. package/dist/plugins/validation.js +0 -105
  101. package/dist/plugins/validation.js.map +0 -1
  102. package/dist/plugins/xml.d.ts +0 -2
  103. package/dist/plugins/xml.d.ts.map +0 -1
  104. package/dist/plugins/xml.js +0 -297
  105. package/dist/plugins/xml.js.map +0 -1
  106. package/dist/temp/base64.js +0 -149
  107. package/dist/temp/calc.js +0 -108
  108. package/dist/temp/compression.js +0 -742
  109. package/dist/temp/csv.js +0 -161
  110. package/dist/temp/datetime.js +0 -217
  111. package/dist/temp/diff.js +0 -198
  112. package/dist/temp/hash.js +0 -424
  113. package/dist/temp/json.js +0 -80
  114. package/dist/temp/markdown.js +0 -224
  115. package/dist/temp/regex.js +0 -141
  116. package/dist/temp/signing.js +0 -600
  117. package/dist/temp/slug.js +0 -201
  118. package/dist/temp/validation.js +0 -125
  119. package/dist/temp/xml.js +0 -295
@@ -1,142 +0,0 @@
1
- function parseCsv(data, delimiter, quote, hasHeaders) {
2
- const rows = [];
3
- let currentRow = [];
4
- let currentField = '';
5
- let inQuotes = false;
6
- let i = 0;
7
- while (i < data.length) {
8
- const char = data[i];
9
- const nextChar = data[i + 1];
10
- if (inQuotes) {
11
- if (char === quote) {
12
- if (nextChar === quote) {
13
- currentField += quote;
14
- i += 2;
15
- continue;
16
- }
17
- else {
18
- inQuotes = false;
19
- i++;
20
- continue;
21
- }
22
- }
23
- else {
24
- currentField += char;
25
- i++;
26
- continue;
27
- }
28
- }
29
- if (char === quote) {
30
- inQuotes = true;
31
- i++;
32
- continue;
33
- }
34
- if (char === delimiter) {
35
- currentRow.push(currentField);
36
- currentField = '';
37
- i++;
38
- continue;
39
- }
40
- if (char === '\r' && nextChar === '\n') {
41
- currentRow.push(currentField);
42
- rows.push(currentRow);
43
- currentRow = [];
44
- currentField = '';
45
- i += 2;
46
- continue;
47
- }
48
- if (char === '\n' || char === '\r') {
49
- currentRow.push(currentField);
50
- rows.push(currentRow);
51
- currentRow = [];
52
- currentField = '';
53
- i++;
54
- continue;
55
- }
56
- currentField += char;
57
- i++;
58
- }
59
- if (currentField || currentRow.length > 0) {
60
- currentRow.push(currentField);
61
- rows.push(currentRow);
62
- }
63
- const filteredRows = rows.filter((row) => row.length > 0 && !(row.length === 1 && row[0] === ''));
64
- if (hasHeaders && filteredRows.length > 0) {
65
- const headers = filteredRows[0];
66
- return { rows: filteredRows.slice(1), headers };
67
- }
68
- return { rows: filteredRows };
69
- }
70
- function stringifyCsv(data, delimiter, quote, headers) {
71
- const rows = [];
72
- const escapeField = (field) => {
73
- if (field === null || field === undefined)
74
- return '';
75
- const str = String(field);
76
- const needsQuotes = str.includes(delimiter) || str.includes(quote) || str.includes('\n') || str.includes('\r');
77
- if (needsQuotes) {
78
- const escapedQuote = quote.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
79
- const escaped = str.replace(new RegExp(escapedQuote, 'g'), quote + quote);
80
- return quote + escaped + quote;
81
- }
82
- return str;
83
- };
84
- if (headers && headers.length > 0) {
85
- rows.push(headers.map(escapeField).join(delimiter));
86
- }
87
- for (const row of data) {
88
- rows.push(row.map(escapeField).join(delimiter));
89
- }
90
- return rows.join('\n');
91
- }
92
- export function csv() {
93
- try {
94
- const inputStr = Host.inputString();
95
- const input = JSON.parse(inputStr);
96
- const delimiter = input.delimiter ?? ',';
97
- const quote = input.quote ?? '"';
98
- if (delimiter.length !== 1) {
99
- throw new Error(`Delimiter must be a single character, got "${delimiter}"`);
100
- }
101
- if (quote.length !== 1) {
102
- throw new Error(`Quote must be a single character, got "${quote}"`);
103
- }
104
- let result;
105
- let rowCount;
106
- let columnCount;
107
- let headers;
108
- if (input.operation === 'parse') {
109
- const hasHeaders = input.headers ?? false;
110
- const parsed = parseCsv(input.data, delimiter, quote, hasHeaders);
111
- result = parsed.rows;
112
- headers = parsed.headers;
113
- rowCount = parsed.rows.length;
114
- columnCount = parsed.rows[0]?.length ?? 0;
115
- }
116
- else {
117
- headers = input.headers;
118
- result = stringifyCsv(input.data, delimiter, quote, headers);
119
- rowCount = input.data.length;
120
- columnCount = input.data[0]?.length ?? 0;
121
- }
122
- const output = {
123
- result,
124
- rowCount,
125
- columnCount,
126
- headers,
127
- };
128
- Host.outputString(JSON.stringify(output));
129
- return 0;
130
- }
131
- catch (error) {
132
- const output = {
133
- result: [],
134
- rowCount: 0,
135
- columnCount: 0,
136
- error: error instanceof Error ? error.message : String(error),
137
- };
138
- Host.outputString(JSON.stringify(output));
139
- return 1;
140
- }
141
- }
142
- //# sourceMappingURL=csv.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"csv.js","sourceRoot":"","sources":["../../src/plugins/csv.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function datetime(): number;
2
- //# sourceMappingURL=datetime.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"datetime.d.ts","sourceRoot":"","sources":["../../src/plugins/datetime.ts"],"names":[],"mappings":"AAyKA,wBAAgB,QAAQ,IAAI,MAAM,CAkFjC"}
@@ -1,199 +0,0 @@
1
- function parseOffset(tz) {
2
- if (!tz || tz === 'UTC' || tz === 'Z')
3
- return 0;
4
- const match = /^([+-])(\d{2}):?(\d{2})$/.exec(tz);
5
- if (!match) {
6
- throw new Error(`Unsupported timezone format: "${tz}". Use UTC, Z, or an offset like +05:30 / -0800.`);
7
- }
8
- const sign = match[1] === '+' ? 1 : -1;
9
- const hours = parseInt(match[2], 10);
10
- const minutes = parseInt(match[3], 10);
11
- return sign * (hours * 60 + minutes) * 60 * 1000;
12
- }
13
- function parseDate(dateStr) {
14
- const isoMatch = /^(\d{4})-(\d{2})-(\d{2})(?:T(\d{2}):(\d{2}):(\d{2})(?:\.(\d{3}))?(?:Z|([+-]\d{2}:?\d{2}))?)?$/.exec(dateStr);
15
- if (isoMatch) {
16
- const [, year, month, day, hour = '0', min = '0', sec = '0', ms = '0', tz] = isoMatch;
17
- const date = new Date(Date.UTC(parseInt(year, 10), parseInt(month, 10) - 1, parseInt(day, 10), parseInt(hour, 10), parseInt(min, 10), parseInt(sec, 10), parseInt(ms, 10)));
18
- if (tz) {
19
- const offset = parseOffset(tz);
20
- date.setTime(date.getTime() - offset);
21
- }
22
- return date;
23
- }
24
- const timestamp = Date.parse(dateStr);
25
- if (!isNaN(timestamp)) {
26
- return new Date(timestamp);
27
- }
28
- throw new Error(`Cannot parse date: ${dateStr}`);
29
- }
30
- function formatDate(date, formatStr, offsetMs = 0) {
31
- const adjusted = new Date(date.getTime() + offsetMs);
32
- const year = adjusted.getUTCFullYear();
33
- const month = adjusted.getUTCMonth() + 1;
34
- const day = adjusted.getUTCDate();
35
- const hours = adjusted.getUTCHours();
36
- const minutes = adjusted.getUTCMinutes();
37
- const seconds = adjusted.getUTCSeconds();
38
- const ms = adjusted.getUTCMilliseconds();
39
- const pad = (n, len = 2) => String(n).padStart(len, '0');
40
- const offsetHours = Math.floor(Math.abs(offsetMs) / 3600000);
41
- const offsetMins = Math.floor((Math.abs(offsetMs) % 3600000) / 60000);
42
- const offsetSign = offsetMs >= 0 ? '+' : '-';
43
- const offsetStr = offsetMs === 0 ? 'Z' : `${offsetSign}${pad(offsetHours)}:${pad(offsetMins)}`;
44
- return formatStr
45
- .replace('YYYY', String(year))
46
- .replace('MM', pad(month))
47
- .replace('DD', pad(day))
48
- .replace('HH', pad(hours))
49
- .replace('mm', pad(minutes))
50
- .replace('ss', pad(seconds))
51
- .replace('SSS', pad(ms, 3))
52
- .replace('Z', offsetStr);
53
- }
54
- function addToDate(date, amount, unit) {
55
- const result = new Date(date.getTime());
56
- switch (unit) {
57
- case 'years':
58
- result.setUTCFullYear(result.getUTCFullYear() + amount);
59
- break;
60
- case 'months':
61
- result.setUTCMonth(result.getUTCMonth() + amount);
62
- break;
63
- case 'days':
64
- result.setUTCDate(result.getUTCDate() + amount);
65
- break;
66
- case 'hours':
67
- result.setUTCHours(result.getUTCHours() + amount);
68
- break;
69
- case 'minutes':
70
- result.setUTCMinutes(result.getUTCMinutes() + amount);
71
- break;
72
- case 'seconds':
73
- result.setUTCSeconds(result.getUTCSeconds() + amount);
74
- break;
75
- case 'milliseconds':
76
- result.setTime(result.getTime() + amount);
77
- break;
78
- default:
79
- throw new Error(`Unknown unit: ${unit}`);
80
- }
81
- return result;
82
- }
83
- function dateDiff(date1, date2, unit) {
84
- const diffMs = date2.getTime() - date1.getTime();
85
- switch (unit) {
86
- case 'years': {
87
- let years = date2.getUTCFullYear() - date1.getUTCFullYear();
88
- const m1 = date1.getUTCMonth();
89
- const m2 = date2.getUTCMonth();
90
- if (m2 < m1 || (m2 === m1 && date2.getUTCDate() < date1.getUTCDate())) {
91
- years--;
92
- }
93
- return years;
94
- }
95
- case 'months': {
96
- let months = (date2.getUTCFullYear() - date1.getUTCFullYear()) * 12 +
97
- (date2.getUTCMonth() - date1.getUTCMonth());
98
- if (date2.getUTCDate() < date1.getUTCDate()) {
99
- months--;
100
- }
101
- return months;
102
- }
103
- case 'days':
104
- return Math.floor(diffMs / (24 * 60 * 60 * 1000));
105
- case 'hours':
106
- return Math.floor(diffMs / (60 * 60 * 1000));
107
- case 'minutes':
108
- return Math.floor(diffMs / (60 * 1000));
109
- case 'seconds':
110
- return Math.floor(diffMs / 1000);
111
- case 'milliseconds':
112
- return diffMs;
113
- default:
114
- return diffMs;
115
- }
116
- }
117
- export function datetime() {
118
- try {
119
- const inputStr = Host.inputString();
120
- const input = JSON.parse(inputStr);
121
- const offsetMs = parseOffset(input.timezone);
122
- let date;
123
- let result;
124
- switch (input.operation) {
125
- case 'now':
126
- date = new Date();
127
- result = date.toISOString();
128
- break;
129
- case 'parse':
130
- if (!input.date)
131
- throw new Error('date is required for parse operation');
132
- date = parseDate(input.date);
133
- result = date.toISOString();
134
- break;
135
- case 'format': {
136
- if (!input.date)
137
- throw new Error('date is required for format operation');
138
- date = parseDate(input.date);
139
- const format = input.format ?? 'YYYY-MM-DDTHH:mm:ssZ';
140
- result = formatDate(date, format, offsetMs);
141
- break;
142
- }
143
- case 'add':
144
- if (!input.date)
145
- throw new Error('date is required for add operation');
146
- if (input.amount === undefined)
147
- throw new Error('amount is required for add operation');
148
- if (!input.unit)
149
- throw new Error('unit is required for add operation');
150
- date = parseDate(input.date);
151
- date = addToDate(date, input.amount, input.unit);
152
- result = date.toISOString();
153
- break;
154
- case 'subtract':
155
- if (!input.date)
156
- throw new Error('date is required for subtract operation');
157
- if (input.amount === undefined)
158
- throw new Error('amount is required for subtract operation');
159
- if (!input.unit)
160
- throw new Error('unit is required for subtract operation');
161
- date = parseDate(input.date);
162
- date = addToDate(date, -input.amount, input.unit);
163
- result = date.toISOString();
164
- break;
165
- case 'diff': {
166
- if (!input.date)
167
- throw new Error('date is required for diff operation');
168
- if (!input.endDate)
169
- throw new Error('endDate is required for diff operation');
170
- date = parseDate(input.date);
171
- const endDate = parseDate(input.endDate);
172
- result = dateDiff(date, endDate, input.unit ?? 'milliseconds');
173
- break;
174
- }
175
- default:
176
- throw new Error(`Unknown operation: ${input.operation}`);
177
- }
178
- const outputDate = input.operation === 'diff' ? parseDate(input.date) : date;
179
- const output = {
180
- result,
181
- iso: outputDate.toISOString(),
182
- unix: Math.floor(outputDate.getTime() / 1000),
183
- formatted: input.format ? formatDate(outputDate, input.format, offsetMs) : undefined,
184
- };
185
- Host.outputString(JSON.stringify(output));
186
- return 0;
187
- }
188
- catch (error) {
189
- const output = {
190
- result: '',
191
- iso: '',
192
- unix: 0,
193
- error: error instanceof Error ? error.message : String(error),
194
- };
195
- Host.outputString(JSON.stringify(output));
196
- return 1;
197
- }
198
- }
199
- //# sourceMappingURL=datetime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"datetime.js","sourceRoot":"","sources":["../../src/plugins/datetime.ts"],"names":[],"mappings":"AAkBA,SAAS,WAAW,CAAC,EAAW;IAC9B,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,GAAG;QAAE,OAAO,CAAC,CAAC;IAEhD,MAAM,KAAK,GAAG,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,iCAAiC,EAAE,kDAAkD,CACtF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEvC,OAAO,IAAI,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AACnD,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAChC,MAAM,QAAQ,GACZ,+FAA+F,CAAC,IAAI,CAClG,OAAO,CACR,CAAC;IAEJ,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC;QACtF,MAAM,IAAI,GAAG,IAAI,IAAI,CACnB,IAAI,CAAC,GAAG,CACN,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,EAClB,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,EACvB,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,EACjB,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,EAClB,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,EACjB,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,EACjB,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CACjB,CACF,CAAC;QAEF,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,UAAU,CAAC,IAAU,EAAE,SAAiB,EAAE,WAAmB,CAAC;IACrE,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC;IAErD,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;IACzC,MAAM,EAAE,GAAG,QAAQ,CAAC,kBAAkB,EAAE,CAAC;IAEzC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,MAAc,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEzE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7C,MAAM,SAAS,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;IAE/F,OAAO,SAAS;SACb,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;SAC7B,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;SACzB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;SACzB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;SAC3B,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;SAC3B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SAC1B,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,SAAS,CAAC,IAAU,EAAE,MAAc,EAAE,IAAY;IACzD,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAExC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,MAAM,CAAC,CAAC;YACxD,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,CAAC;YAClD,MAAM;QACR,KAAK,MAAM;YACT,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,CAAC;YAChD,MAAM;QACR,KAAK,OAAO;YACV,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,CAAC;YAClD,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,MAAM,CAAC,CAAC;YACtD,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,MAAM,CAAC,CAAC;YACtD,MAAM;QACR,KAAK,cAAc;YACjB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;YAC1C,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAW,EAAE,KAAW,EAAE,IAAY;IACtD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IAEjD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,KAAK,GAAG,KAAK,CAAC,cAAc,EAAE,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;YAC5D,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAC/B,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAC/B,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;gBACtE,KAAK,EAAE,CAAC;YACV,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,MAAM,GACR,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE;gBACtD,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YAC9C,IAAI,KAAK,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC;gBAC5C,MAAM,EAAE,CAAC;YACX,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QACpD,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAC/C,KAAK,SAAS;YACZ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAC1C,KAAK,SAAS;YACZ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QACnC,KAAK,cAAc;YACjB,OAAO,MAAM,CAAC;QAChB;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,KAAK,GAAkB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAElD,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,IAAU,CAAC;QACf,IAAI,MAAuB,CAAC;QAE5B,QAAQ,KAAK,CAAC,SAAS,EAAE,CAAC;YACxB,KAAK,KAAK;gBACR,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBAClB,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC5B,MAAM;YAER,KAAK,OAAO;gBACV,IAAI,CAAC,KAAK,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;gBACzE,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC5B,MAAM;YAER,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,KAAK,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;gBAC1E,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,sBAAsB,CAAC;gBACtD,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC5C,MAAM;YACR,CAAC;YAED,KAAK,KAAK;gBACR,IAAI,CAAC,KAAK,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBACvE,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;gBACxF,IAAI,CAAC,KAAK,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBACvE,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjD,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC5B,MAAM;YAER,KAAK,UAAU;gBACb,IAAI,CAAC,KAAK,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBAC5E,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;oBAC5B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBAC/D,IAAI,CAAC,KAAK,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBAC5E,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClD,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC5B,MAAM;YAER,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,IAAI,CAAC,KAAK,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBACxE,IAAI,CAAC,KAAK,CAAC,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBAC9E,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACzC,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,cAAc,CAAC,CAAC;gBAC/D,MAAM;YACR,CAAC;YAED;gBACE,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAK,CAAC,CAAC,CAAC,CAAC,IAAK,CAAC;QAE/E,MAAM,MAAM,GAAmB;YAC7B,MAAM;YACN,GAAG,EAAE,UAAU,CAAC,WAAW,EAAE;YAC7B,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;YAC7C,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;SACrF,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAmB;YAC7B,MAAM,EAAE,EAAE;YACV,GAAG,EAAE,EAAE;YACP,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function diff(): number;
2
- //# sourceMappingURL=diff.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/plugins/diff.ts"],"names":[],"mappings":"AAuLA,wBAAgB,IAAI,IAAI,MAAM,CA6C7B"}
@@ -1,187 +0,0 @@
1
- function myersDiff(oldArr, newArr) {
2
- const n = oldArr.length;
3
- const m = newArr.length;
4
- const max = n + m;
5
- if (max === 0)
6
- return [];
7
- const v = { 1: 0 };
8
- const trace = [];
9
- outer: for (let d = 0; d <= max; d++) {
10
- trace.push({ ...v });
11
- for (let k = -d; k <= d; k += 2) {
12
- let x;
13
- if (k === -d || (k !== d && v[k - 1] < v[k + 1])) {
14
- x = v[k + 1];
15
- }
16
- else {
17
- x = v[k - 1] + 1;
18
- }
19
- let y = x - k;
20
- while (x < n && y < m && oldArr[x] === newArr[y]) {
21
- x++;
22
- y++;
23
- }
24
- v[k] = x;
25
- if (x >= n && y >= m) {
26
- break outer;
27
- }
28
- }
29
- }
30
- const changes = [];
31
- let x = n;
32
- let y = m;
33
- for (let d = trace.length - 1; d >= 0; d--) {
34
- const vPrev = trace[d];
35
- const k = x - y;
36
- let prevK;
37
- if (k === -d || (k !== d && vPrev[k - 1] < vPrev[k + 1])) {
38
- prevK = k + 1;
39
- }
40
- else {
41
- prevK = k - 1;
42
- }
43
- const prevX = vPrev[prevK];
44
- const prevY = prevX - prevK;
45
- while (x > prevX && y > prevY) {
46
- changes.unshift({
47
- type: 'equal',
48
- value: oldArr[x - 1],
49
- lineNumber: { original: x, modified: y },
50
- });
51
- x--;
52
- y--;
53
- }
54
- if (d > 0) {
55
- if (x === prevX) {
56
- changes.unshift({
57
- type: 'add',
58
- value: newArr[y - 1],
59
- lineNumber: { modified: y },
60
- });
61
- y--;
62
- }
63
- else {
64
- changes.unshift({
65
- type: 'remove',
66
- value: oldArr[x - 1],
67
- lineNumber: { original: x },
68
- });
69
- x--;
70
- }
71
- }
72
- }
73
- return changes;
74
- }
75
- function formatUnified(changes, context) {
76
- const lines = [];
77
- let i = 0;
78
- while (i < changes.length) {
79
- let start = i;
80
- while (start > 0 && i - start < context && changes[start - 1].type === 'equal') {
81
- start--;
82
- }
83
- let end = i;
84
- while (end < changes.length) {
85
- if (changes[end].type !== 'equal') {
86
- let nextChange = end + 1;
87
- while (nextChange < changes.length && changes[nextChange].type === 'equal') {
88
- nextChange++;
89
- }
90
- if (nextChange - end <= context * 2 && nextChange < changes.length) {
91
- end = nextChange;
92
- }
93
- else {
94
- end = Math.min(end + context, changes.length - 1);
95
- break;
96
- }
97
- }
98
- end++;
99
- }
100
- if (end >= changes.length)
101
- end = changes.length - 1;
102
- let hasChanges = false;
103
- for (let j = start; j <= end; j++) {
104
- if (changes[j].type !== 'equal') {
105
- hasChanges = true;
106
- break;
107
- }
108
- }
109
- if (hasChanges) {
110
- for (let j = start; j <= end; j++) {
111
- const change = changes[j];
112
- if (change.type === 'add') {
113
- lines.push(`+ ${change.value}`);
114
- }
115
- else if (change.type === 'remove') {
116
- lines.push(`- ${change.value}`);
117
- }
118
- else {
119
- lines.push(` ${change.value}`);
120
- }
121
- }
122
- }
123
- i = end + 1;
124
- while (i < changes.length && changes[i].type === 'equal') {
125
- i++;
126
- }
127
- }
128
- return lines.join('\n');
129
- }
130
- function formatInline(changes) {
131
- const lines = [];
132
- for (const change of changes) {
133
- if (change.type === 'add') {
134
- lines.push(`[+] ${change.value}`);
135
- }
136
- else if (change.type === 'remove') {
137
- lines.push(`[-] ${change.value}`);
138
- }
139
- else {
140
- lines.push(` ${change.value}`);
141
- }
142
- }
143
- return lines.join('\n');
144
- }
145
- export function diff() {
146
- try {
147
- const inputStr = Host.inputString();
148
- const input = JSON.parse(inputStr);
149
- const format = input.format ?? 'unified';
150
- const context = input.context ?? 3;
151
- const oldLines = input.original.split('\n');
152
- const newLines = input.modified.split('\n');
153
- const changes = myersDiff(oldLines, newLines);
154
- const additions = changes.filter((c) => c.type === 'add').length;
155
- const deletions = changes.filter((c) => c.type === 'remove').length;
156
- let diffStr;
157
- if (format === 'json') {
158
- diffStr = JSON.stringify(changes);
159
- }
160
- else if (format === 'inline') {
161
- diffStr = formatInline(changes);
162
- }
163
- else {
164
- diffStr = formatUnified(changes, context);
165
- }
166
- const output = {
167
- diff: diffStr,
168
- additions,
169
- deletions,
170
- changes,
171
- };
172
- Host.outputString(JSON.stringify(output));
173
- return 0;
174
- }
175
- catch (error) {
176
- const output = {
177
- diff: '',
178
- additions: 0,
179
- deletions: 0,
180
- changes: [],
181
- error: error instanceof Error ? error.message : String(error),
182
- };
183
- Host.outputString(JSON.stringify(output));
184
- return 1;
185
- }
186
- }
187
- //# sourceMappingURL=diff.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/plugins/diff.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Hash WASM Plugin
3
- *
4
- * This file is compiled to WASM using the Extism JS PDK.
5
- * It provides cryptographic hashing functions.
6
- *
7
- * Build command:
8
- * esbuild src/plugins/hash.ts -o dist/temp/hash.js --bundle --format=cjs --target=es2020
9
- * extism-js dist/temp/hash.js -o dist/wasm/hash.wasm
10
- */
11
- export declare function hash(): number;
12
- //# sourceMappingURL=hash.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/plugins/hash.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA0TH,wBAAgB,IAAI,IAAI,MAAM,CAoC7B"}