@cogitator-ai/wasm-tools 0.5.10 → 0.6.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 (123) hide show
  1. package/README.md +84 -25
  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/file-watcher.d.ts.map +1 -1
  7. package/dist/manager/file-watcher.js +6 -0
  8. package/dist/manager/file-watcher.js.map +1 -1
  9. package/dist/manager/types.d.ts +11 -3
  10. package/dist/manager/types.d.ts.map +1 -1
  11. package/dist/manager/wasm-loader.d.ts +1 -0
  12. package/dist/manager/wasm-loader.d.ts.map +1 -1
  13. package/dist/manager/wasm-loader.js +26 -5
  14. package/dist/manager/wasm-loader.js.map +1 -1
  15. package/dist/manager/wasm-tool-manager.d.ts +6 -0
  16. package/dist/manager/wasm-tool-manager.d.ts.map +1 -1
  17. package/dist/manager/wasm-tool-manager.js +115 -30
  18. package/dist/manager/wasm-tool-manager.js.map +1 -1
  19. package/dist/runtime.d.ts +11 -0
  20. package/dist/runtime.d.ts.map +1 -0
  21. package/dist/runtime.js +104 -0
  22. package/dist/runtime.js.map +1 -0
  23. package/dist/wasm/base64.wasm +0 -0
  24. package/dist/wasm/calc.wasm +0 -0
  25. package/dist/wasm/compression.wasm +0 -0
  26. package/dist/wasm/csv.wasm +0 -0
  27. package/dist/wasm/datetime.wasm +0 -0
  28. package/dist/wasm/diff.wasm +0 -0
  29. package/dist/wasm/hash.wasm +0 -0
  30. package/dist/wasm/json.wasm +0 -0
  31. package/dist/wasm/markdown.wasm +0 -0
  32. package/dist/wasm/regex.wasm +0 -0
  33. package/dist/wasm/signing.wasm +0 -0
  34. package/dist/wasm/slug.wasm +0 -0
  35. package/dist/wasm/validation.wasm +0 -0
  36. package/dist/wasm/xml.wasm +0 -0
  37. package/package.json +5 -6
  38. package/dist/__tests__/file-watcher.test.d.ts +0 -2
  39. package/dist/__tests__/file-watcher.test.d.ts.map +0 -1
  40. package/dist/__tests__/file-watcher.test.js +0 -99
  41. package/dist/__tests__/file-watcher.test.js.map +0 -1
  42. package/dist/__tests__/index.test.d.ts +0 -2
  43. package/dist/__tests__/index.test.d.ts.map +0 -1
  44. package/dist/__tests__/index.test.js +0 -226
  45. package/dist/__tests__/index.test.js.map +0 -1
  46. package/dist/__tests__/wasm-loader.test.d.ts +0 -2
  47. package/dist/__tests__/wasm-loader.test.d.ts.map +0 -1
  48. package/dist/__tests__/wasm-loader.test.js +0 -68
  49. package/dist/__tests__/wasm-loader.test.js.map +0 -1
  50. package/dist/__tests__/wasm-tool-manager.test.d.ts +0 -2
  51. package/dist/__tests__/wasm-tool-manager.test.d.ts.map +0 -1
  52. package/dist/__tests__/wasm-tool-manager.test.js +0 -166
  53. package/dist/__tests__/wasm-tool-manager.test.js.map +0 -1
  54. package/dist/plugins/base64.d.ts +0 -12
  55. package/dist/plugins/base64.d.ts.map +0 -1
  56. package/dist/plugins/base64.js +0 -95
  57. package/dist/plugins/base64.js.map +0 -1
  58. package/dist/plugins/calc.d.ts +0 -12
  59. package/dist/plugins/calc.d.ts.map +0 -1
  60. package/dist/plugins/calc.js +0 -95
  61. package/dist/plugins/calc.js.map +0 -1
  62. package/dist/plugins/compression.d.ts +0 -2
  63. package/dist/plugins/compression.d.ts.map +0 -1
  64. package/dist/plugins/compression.js +0 -545
  65. package/dist/plugins/compression.js.map +0 -1
  66. package/dist/plugins/csv.d.ts +0 -2
  67. package/dist/plugins/csv.d.ts.map +0 -1
  68. package/dist/plugins/csv.js +0 -136
  69. package/dist/plugins/csv.js.map +0 -1
  70. package/dist/plugins/datetime.d.ts +0 -2
  71. package/dist/plugins/datetime.d.ts.map +0 -1
  72. package/dist/plugins/datetime.js +0 -186
  73. package/dist/plugins/datetime.js.map +0 -1
  74. package/dist/plugins/diff.d.ts +0 -2
  75. package/dist/plugins/diff.d.ts.map +0 -1
  76. package/dist/plugins/diff.js +0 -187
  77. package/dist/plugins/diff.js.map +0 -1
  78. package/dist/plugins/hash.d.ts +0 -12
  79. package/dist/plugins/hash.d.ts.map +0 -1
  80. package/dist/plugins/hash.js +0 -309
  81. package/dist/plugins/hash.js.map +0 -1
  82. package/dist/plugins/json.d.ts +0 -12
  83. package/dist/plugins/json.d.ts.map +0 -1
  84. package/dist/plugins/json.js +0 -70
  85. package/dist/plugins/json.js.map +0 -1
  86. package/dist/plugins/markdown.d.ts +0 -2
  87. package/dist/plugins/markdown.d.ts.map +0 -1
  88. package/dist/plugins/markdown.js +0 -213
  89. package/dist/plugins/markdown.js.map +0 -1
  90. package/dist/plugins/regex.d.ts +0 -2
  91. package/dist/plugins/regex.d.ts.map +0 -1
  92. package/dist/plugins/regex.js +0 -120
  93. package/dist/plugins/regex.js.map +0 -1
  94. package/dist/plugins/signing.d.ts +0 -2
  95. package/dist/plugins/signing.d.ts.map +0 -1
  96. package/dist/plugins/signing.js +0 -576
  97. package/dist/plugins/signing.js.map +0 -1
  98. package/dist/plugins/slug.d.ts +0 -2
  99. package/dist/plugins/slug.d.ts.map +0 -1
  100. package/dist/plugins/slug.js +0 -180
  101. package/dist/plugins/slug.js.map +0 -1
  102. package/dist/plugins/validation.d.ts +0 -2
  103. package/dist/plugins/validation.d.ts.map +0 -1
  104. package/dist/plugins/validation.js +0 -105
  105. package/dist/plugins/validation.js.map +0 -1
  106. package/dist/plugins/xml.d.ts +0 -2
  107. package/dist/plugins/xml.d.ts.map +0 -1
  108. package/dist/plugins/xml.js +0 -297
  109. package/dist/plugins/xml.js.map +0 -1
  110. package/dist/temp/base64.js +0 -102
  111. package/dist/temp/calc.js +0 -102
  112. package/dist/temp/compression.js +0 -738
  113. package/dist/temp/csv.js +0 -155
  114. package/dist/temp/datetime.js +0 -201
  115. package/dist/temp/diff.js +0 -198
  116. package/dist/temp/hash.js +0 -423
  117. package/dist/temp/json.js +0 -80
  118. package/dist/temp/markdown.js +0 -224
  119. package/dist/temp/regex.js +0 -141
  120. package/dist/temp/signing.js +0 -584
  121. package/dist/temp/slug.js +0 -198
  122. package/dist/temp/validation.js +0 -125
  123. package/dist/temp/xml.js +0 -295
@@ -1,136 +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
- let result;
99
- let rowCount;
100
- let columnCount;
101
- let headers;
102
- if (input.operation === 'parse') {
103
- const hasHeaders = input.headers ?? false;
104
- const parsed = parseCsv(input.data, delimiter, quote, hasHeaders);
105
- result = parsed.rows;
106
- headers = parsed.headers;
107
- rowCount = parsed.rows.length;
108
- columnCount = parsed.rows[0]?.length ?? 0;
109
- }
110
- else {
111
- headers = input.headers;
112
- result = stringifyCsv(input.data, delimiter, quote, headers);
113
- rowCount = input.data.length;
114
- columnCount = input.data[0]?.length ?? 0;
115
- }
116
- const output = {
117
- result,
118
- rowCount,
119
- columnCount,
120
- headers,
121
- };
122
- Host.outputString(JSON.stringify(output));
123
- return 0;
124
- }
125
- catch (error) {
126
- const output = {
127
- result: [],
128
- rowCount: 0,
129
- columnCount: 0,
130
- error: error instanceof Error ? error.message : String(error),
131
- };
132
- Host.outputString(JSON.stringify(output));
133
- return 1;
134
- }
135
- }
136
- //# 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":"AA0JA,wBAAgB,QAAQ,IAAI,MAAM,CAkFjC"}
@@ -1,186 +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
- return 0;
7
- const sign = match[1] === '+' ? 1 : -1;
8
- const hours = parseInt(match[2], 10);
9
- const minutes = parseInt(match[3], 10);
10
- return sign * (hours * 60 + minutes) * 60 * 1000;
11
- }
12
- function parseDate(dateStr) {
13
- const isoMatch = /^(\d{4})-(\d{2})-(\d{2})(?:T(\d{2}):(\d{2}):(\d{2})(?:\.(\d{3}))?(?:Z|([+-]\d{2}:?\d{2}))?)?$/.exec(dateStr);
14
- if (isoMatch) {
15
- const [, year, month, day, hour = '0', min = '0', sec = '0', ms = '0', tz] = isoMatch;
16
- 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)));
17
- if (tz) {
18
- const offset = parseOffset(tz);
19
- date.setTime(date.getTime() - offset);
20
- }
21
- return date;
22
- }
23
- const timestamp = Date.parse(dateStr);
24
- if (!isNaN(timestamp)) {
25
- return new Date(timestamp);
26
- }
27
- throw new Error(`Cannot parse date: ${dateStr}`);
28
- }
29
- function formatDate(date, formatStr, offsetMs = 0) {
30
- const adjusted = new Date(date.getTime() + offsetMs);
31
- const year = adjusted.getUTCFullYear();
32
- const month = adjusted.getUTCMonth() + 1;
33
- const day = adjusted.getUTCDate();
34
- const hours = adjusted.getUTCHours();
35
- const minutes = adjusted.getUTCMinutes();
36
- const seconds = adjusted.getUTCSeconds();
37
- const ms = adjusted.getUTCMilliseconds();
38
- const pad = (n, len = 2) => String(n).padStart(len, '0');
39
- const offsetHours = Math.floor(Math.abs(offsetMs) / 3600000);
40
- const offsetMins = Math.floor((Math.abs(offsetMs) % 3600000) / 60000);
41
- const offsetSign = offsetMs >= 0 ? '+' : '-';
42
- const offsetStr = offsetMs === 0 ? 'Z' : `${offsetSign}${pad(offsetHours)}:${pad(offsetMins)}`;
43
- return formatStr
44
- .replace('YYYY', String(year))
45
- .replace('MM', pad(month))
46
- .replace('DD', pad(day))
47
- .replace('HH', pad(hours))
48
- .replace('mm', pad(minutes))
49
- .replace('ss', pad(seconds))
50
- .replace('SSS', pad(ms, 3))
51
- .replace('Z', offsetStr);
52
- }
53
- function addToDate(date, amount, unit) {
54
- const result = new Date(date.getTime());
55
- switch (unit) {
56
- case 'years':
57
- result.setUTCFullYear(result.getUTCFullYear() + amount);
58
- break;
59
- case 'months':
60
- result.setUTCMonth(result.getUTCMonth() + amount);
61
- break;
62
- case 'days':
63
- result.setUTCDate(result.getUTCDate() + amount);
64
- break;
65
- case 'hours':
66
- result.setUTCHours(result.getUTCHours() + amount);
67
- break;
68
- case 'minutes':
69
- result.setUTCMinutes(result.getUTCMinutes() + amount);
70
- break;
71
- case 'seconds':
72
- result.setUTCSeconds(result.getUTCSeconds() + amount);
73
- break;
74
- case 'milliseconds':
75
- result.setTime(result.getTime() + amount);
76
- break;
77
- default:
78
- throw new Error(`Unknown unit: ${unit}`);
79
- }
80
- return result;
81
- }
82
- function dateDiff(date1, date2, unit) {
83
- const diffMs = date2.getTime() - date1.getTime();
84
- switch (unit) {
85
- case 'years':
86
- return date2.getUTCFullYear() - date1.getUTCFullYear();
87
- case 'months':
88
- return ((date2.getUTCFullYear() - date1.getUTCFullYear()) * 12 +
89
- (date2.getUTCMonth() - date1.getUTCMonth()));
90
- case 'days':
91
- return Math.floor(diffMs / (24 * 60 * 60 * 1000));
92
- case 'hours':
93
- return Math.floor(diffMs / (60 * 60 * 1000));
94
- case 'minutes':
95
- return Math.floor(diffMs / (60 * 1000));
96
- case 'seconds':
97
- return Math.floor(diffMs / 1000);
98
- case 'milliseconds':
99
- return diffMs;
100
- default:
101
- return diffMs;
102
- }
103
- }
104
- export function datetime() {
105
- try {
106
- const inputStr = Host.inputString();
107
- const input = JSON.parse(inputStr);
108
- const offsetMs = parseOffset(input.timezone);
109
- let date;
110
- let result;
111
- switch (input.operation) {
112
- case 'now':
113
- date = new Date();
114
- result = date.toISOString();
115
- break;
116
- case 'parse':
117
- if (!input.date)
118
- throw new Error('date is required for parse operation');
119
- date = parseDate(input.date);
120
- result = date.toISOString();
121
- break;
122
- case 'format': {
123
- if (!input.date)
124
- throw new Error('date is required for format operation');
125
- date = parseDate(input.date);
126
- const format = input.format ?? 'YYYY-MM-DDTHH:mm:ssZ';
127
- result = formatDate(date, format, offsetMs);
128
- break;
129
- }
130
- case 'add':
131
- if (!input.date)
132
- throw new Error('date is required for add operation');
133
- if (input.amount === undefined)
134
- throw new Error('amount is required for add operation');
135
- if (!input.unit)
136
- throw new Error('unit is required for add operation');
137
- date = parseDate(input.date);
138
- date = addToDate(date, input.amount, input.unit);
139
- result = date.toISOString();
140
- break;
141
- case 'subtract':
142
- if (!input.date)
143
- throw new Error('date is required for subtract operation');
144
- if (input.amount === undefined)
145
- throw new Error('amount is required for subtract operation');
146
- if (!input.unit)
147
- throw new Error('unit is required for subtract operation');
148
- date = parseDate(input.date);
149
- date = addToDate(date, -input.amount, input.unit);
150
- result = date.toISOString();
151
- break;
152
- case 'diff': {
153
- if (!input.date)
154
- throw new Error('date is required for diff operation');
155
- if (!input.endDate)
156
- throw new Error('endDate is required for diff operation');
157
- date = parseDate(input.date);
158
- const endDate = parseDate(input.endDate);
159
- result = dateDiff(date, endDate, input.unit ?? 'milliseconds');
160
- break;
161
- }
162
- default:
163
- throw new Error(`Unknown operation: ${input.operation}`);
164
- }
165
- const outputDate = input.operation === 'diff' ? parseDate(input.date) : date;
166
- const output = {
167
- result,
168
- iso: outputDate.toISOString(),
169
- unix: Math.floor(outputDate.getTime() / 1000),
170
- formatted: input.format ? formatDate(outputDate, input.format, offsetMs) : undefined,
171
- };
172
- Host.outputString(JSON.stringify(output));
173
- return 0;
174
- }
175
- catch (error) {
176
- const output = {
177
- result: '',
178
- iso: '',
179
- unix: 0,
180
- error: error instanceof Error ? error.message : String(error),
181
- };
182
- Host.outputString(JSON.stringify(output));
183
- return 1;
184
- }
185
- }
186
- //# sourceMappingURL=datetime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"datetime.js","sourceRoot":"","sources":["../../src/plugins/datetime.ts"],"names":[],"mappings":"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"}
@@ -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,CAmC7B"}