ag-grid-url-sync 0.3.0 → 0.5.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 (42) hide show
  1. package/README.md +144 -14
  2. package/dist/core/ag-grid-url-sync.d.ts +13 -0
  3. package/dist/core/ag-grid-url-sync.js +10 -55
  4. package/dist/core/ag-grid-url-sync.js.map +1 -1
  5. package/dist/core/grid-integration.js +5 -67
  6. package/dist/core/grid-integration.js.map +1 -1
  7. package/dist/core/index.js +0 -5
  8. package/dist/core/index.js.map +1 -1
  9. package/dist/core/individual-params.d.ts +19 -0
  10. package/dist/core/individual-params.js +260 -0
  11. package/dist/core/individual-params.js.map +1 -0
  12. package/dist/core/serialization/formats.d.ts +8 -9
  13. package/dist/core/serialization/formats.js +63 -65
  14. package/dist/core/serialization/formats.js.map +1 -1
  15. package/dist/core/serialization/grouped.d.ts +10 -5
  16. package/dist/core/serialization/grouped.js +4 -51
  17. package/dist/core/serialization/grouped.js.map +1 -1
  18. package/dist/core/serialization/index.js +0 -4
  19. package/dist/core/serialization/index.js.map +1 -1
  20. package/dist/core/types.d.ts +42 -9
  21. package/dist/core/types.js +0 -118
  22. package/dist/core/types.js.map +1 -1
  23. package/dist/core/url-generator.d.ts +10 -7
  24. package/dist/core/url-generator.js +25 -165
  25. package/dist/core/url-generator.js.map +1 -1
  26. package/dist/core/url-parser.d.ts +19 -7
  27. package/dist/core/url-parser.js +28 -294
  28. package/dist/core/url-parser.js.map +1 -1
  29. package/dist/core/validation.d.ts +6 -6
  30. package/dist/core/validation.js +1 -78
  31. package/dist/core/validation.js.map +1 -1
  32. package/dist/core/view-storage.d.ts +63 -0
  33. package/dist/core/view-storage.js +112 -0
  34. package/dist/core/view-storage.js.map +1 -0
  35. package/dist/index.d.ts +1 -0
  36. package/dist/index.js +0 -6
  37. package/dist/index.js.map +1 -1
  38. package/dist/react/index.d.ts +1 -0
  39. package/dist/react/types.d.ts +103 -1
  40. package/dist/react/use-ag-grid-url-sync.js +406 -46
  41. package/dist/react/use-ag-grid-url-sync.js.map +1 -1
  42. package/package.json +98 -31
@@ -1 +1 @@
1
- {"version":3,"file":"grid-integration.js","sourceRoot":"","sources":["../../src/core/grid-integration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grid-integration.js","sourceRoot":"","sources":["../../src/core/grid-integration.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,8 @@
1
1
  export { AGGridUrlSync, createUrlSync } from './ag-grid-url-sync.js';
2
2
  export * from './types.js';
3
- // Validation utilities
4
3
  export { validateFilterValue, DEFAULT_CONFIG } from './validation.js';
5
- // URL parsing utilities
6
4
  export { parseUrlFilters, parseFilterParam } from './url-parser.js';
7
- // URL generation utilities
8
5
  export { serializeFilters, generateUrl } from './url-generator.js';
9
- // AG Grid integration utilities
10
6
  export { getFilterModel, applyFilterModel } from './grid-integration.js';
11
- // Grouped serialization utilities
12
7
  export * from './serialization/index.js';
13
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAEpE,cAAc,YAAY,CAAA;AAE1B,uBAAuB;AACvB,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAErE,wBAAwB;AACxB,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEnE,2BAA2B;AAC3B,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAElE,gCAAgC;AAChC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExE,kCAAkC;AAClC,cAAc,0BAA0B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAEpE,cAAc,YAAY,CAAA;AAG1B,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAGrE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAGnE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAGlE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAGxE,cAAc,0BAA0B,CAAA"}
@@ -0,0 +1,19 @@
1
+ import type { FilterState, ColumnFilter, ParseConfig } from './types.js';
2
+ /**
3
+ * Converts a filter state object into URL search parameters.
4
+ * This function does not require a GridApi instance: leave `config.gridApi` out
5
+ * (or set it to `null`) when you only need to serialize filters without a grid.
6
+ * A text value over `config.maxValueLength` is reported through
7
+ * `config.onParseError` and skipped. The other filters are kept.
8
+ */
9
+ export declare function serializeFilters(filterState: FilterState, config: ParseConfig): URLSearchParams;
10
+ /**
11
+ * Parses a URL parameter into a column filter
12
+ */
13
+ export declare function parseFilterParam(param: string, value: string, expectedPrefix?: string): ColumnFilter;
14
+ /**
15
+ * Parses prefixed filter parameters into a filter state object.
16
+ * Parameters without the configured prefix are skipped. A parameter that fails
17
+ * to parse is reported through `config.onParseError` and skipped.
18
+ */
19
+ export declare function parseIndividualParams(searchParams: URLSearchParams, config: ParseConfig): FilterState;
@@ -0,0 +1,260 @@
1
+ import { InvalidFilterError, OPERATION_MAP, INTERNAL_TO_URL_OPERATION_MAP } from './types.js';
2
+ import { validateFilterValue, validateAndParseNumber, validateNumberRange, validateAndParseDate, validateAndParseDateRange, validateDateFilter, DEFAULT_CONFIG } from './validation.js';
3
+ const FILTER_TYPES = {
4
+ TEXT: 'text',
5
+ NUMBER: 'number',
6
+ DATE: 'date'
7
+ };
8
+ function serializeColumnFilter(columnName, filter, paramPrefix) {
9
+ const urlOperation = INTERNAL_TO_URL_OPERATION_MAP[filter.type];
10
+ if (!urlOperation)
11
+ return null;
12
+ const paramName = `${paramPrefix}${columnName}_${urlOperation}`;
13
+ if (filter.type === 'dateRange' || filter.type === 'inRange') {
14
+ return 'filterTo' in filter && filter.filterTo !== undefined
15
+ ? [paramName, `${filter.filter},${filter.filterTo}`]
16
+ : null;
17
+ }
18
+ if (filter.type === 'blank' || filter.type === 'notBlank') {
19
+ return [paramName, 'true'];
20
+ }
21
+ if (filter.filterType === FILTER_TYPES.NUMBER ||
22
+ filter.filterType === FILTER_TYPES.DATE) {
23
+ const value = String(filter.filter);
24
+ return value ? [paramName, value] : null;
25
+ }
26
+ if (filter.filterType === FILTER_TYPES.TEXT && filter.filter) {
27
+ return [paramName, filter.filter];
28
+ }
29
+ return null;
30
+ }
31
+ export function serializeFilters(filterState, config) {
32
+ const params = new URLSearchParams();
33
+ for (const [column, filter] of Object.entries(filterState)) {
34
+ if (filter.filterType !== FILTER_TYPES.TEXT &&
35
+ filter.filterType !== FILTER_TYPES.NUMBER &&
36
+ filter.filterType !== FILTER_TYPES.DATE)
37
+ continue;
38
+ let checkedFilter = filter;
39
+ if (filter.filterType === FILTER_TYPES.TEXT) {
40
+ try {
41
+ checkedFilter = {
42
+ ...filter,
43
+ filter: validateFilterValue(filter.filter, config, filter.type)
44
+ };
45
+ }
46
+ catch (error) {
47
+ config.onParseError?.(error);
48
+ continue;
49
+ }
50
+ }
51
+ const param = serializeColumnFilter(column, checkedFilter, config.paramPrefix);
52
+ if (param) {
53
+ params.append(...param);
54
+ }
55
+ }
56
+ return params;
57
+ }
58
+ function isNumberOperation(operation) {
59
+ return [
60
+ 'lessThan',
61
+ 'lessThanOrEqual',
62
+ 'greaterThan',
63
+ 'greaterThanOrEqual',
64
+ 'inRange'
65
+ ].includes(operation);
66
+ }
67
+ function isDateOperation(operation) {
68
+ return [
69
+ 'dateBefore',
70
+ 'dateBeforeOrEqual',
71
+ 'dateAfter',
72
+ 'dateAfterOrEqual',
73
+ 'dateRange'
74
+ ].includes(operation);
75
+ }
76
+ function isSharedOperation(operation) {
77
+ return ['eq', 'notEqual', 'blank', 'notBlank'].includes(operation);
78
+ }
79
+ function tryParseAsDate(value) {
80
+ try {
81
+ validateAndParseDate(value);
82
+ return 'date';
83
+ }
84
+ catch {
85
+ return null;
86
+ }
87
+ }
88
+ function tryParseNumber(value) {
89
+ try {
90
+ return validateAndParseNumber(value);
91
+ }
92
+ catch {
93
+ return null;
94
+ }
95
+ }
96
+ function detectFilterTypeForSharedOperation(operation, value) {
97
+ if (operation === 'blank' || operation === 'notBlank') {
98
+ return 'text';
99
+ }
100
+ if (operation === 'eq' || operation === 'notEqual') {
101
+ if (tryParseAsDate(value) === 'date') {
102
+ return 'date';
103
+ }
104
+ if (tryParseNumber(value) !== null) {
105
+ return 'number';
106
+ }
107
+ return 'text';
108
+ }
109
+ return 'text';
110
+ }
111
+ function extractColumnAndOperation(param, expectedPrefix) {
112
+ const ensureTrailingUnderscore = (prefix) => prefix.endsWith('_') ? prefix : prefix + '_';
113
+ const sanitizedPrefix = expectedPrefix
114
+ ? ensureTrailingUnderscore(expectedPrefix)
115
+ : ensureTrailingUnderscore(DEFAULT_CONFIG.paramPrefix);
116
+ const prefixToCheck = sanitizedPrefix.slice(0, -1);
117
+ if (!param.startsWith(prefixToCheck + '_')) {
118
+ throw new InvalidFilterError(`Invalid filter prefix in parameter: ${param}`);
119
+ }
120
+ const withoutPrefix = param.substring(prefixToCheck.length + 1);
121
+ const lastUnderscoreIndex = withoutPrefix.lastIndexOf('_');
122
+ if (lastUnderscoreIndex === -1) {
123
+ throw new InvalidFilterError(`Invalid filter parameter format: ${param}`);
124
+ }
125
+ const column = withoutPrefix.substring(0, lastUnderscoreIndex);
126
+ const operation = withoutPrefix.substring(lastUnderscoreIndex + 1);
127
+ if (!column.trim()) {
128
+ throw new InvalidFilterError(`Empty column name in parameter: ${param}`);
129
+ }
130
+ return { column, operation };
131
+ }
132
+ export function parseFilterParam(param, value, expectedPrefix) {
133
+ const { operation } = extractColumnAndOperation(param, expectedPrefix);
134
+ return parseFilterOperation(operation, value);
135
+ }
136
+ function parseFilterOperation(operation, value) {
137
+ const filterOp = OPERATION_MAP[operation];
138
+ if (!filterOp) {
139
+ throw new InvalidFilterError(`Unsupported filter operation: ${operation}`);
140
+ }
141
+ if (filterOp === 'dateRange') {
142
+ try {
143
+ const [startDate, endDate] = validateAndParseDateRange(value);
144
+ return {
145
+ filterType: 'date',
146
+ type: filterOp,
147
+ filter: startDate,
148
+ filterTo: endDate
149
+ };
150
+ }
151
+ catch (error) {
152
+ throw new InvalidFilterError(error instanceof Error ? error.message : 'Invalid date range');
153
+ }
154
+ }
155
+ if (filterOp === 'inRange') {
156
+ const rangeParts = value.split(',');
157
+ if (rangeParts.length !== 2) {
158
+ throw new InvalidFilterError('Range operation requires exactly two values separated by comma');
159
+ }
160
+ const min = validateAndParseNumber(rangeParts[0] || '');
161
+ const max = validateAndParseNumber(rangeParts[1] || '');
162
+ const rangeValidation = validateNumberRange(min, max);
163
+ if (!rangeValidation.valid) {
164
+ throw new InvalidFilterError(rangeValidation.error || 'Invalid range values');
165
+ }
166
+ return {
167
+ filterType: 'number',
168
+ type: filterOp,
169
+ filter: min,
170
+ filterTo: max
171
+ };
172
+ }
173
+ if (isDateOperation(filterOp)) {
174
+ try {
175
+ const dateValue = validateAndParseDate(value);
176
+ const validation = validateDateFilter(dateValue, filterOp);
177
+ if (!validation.valid) {
178
+ throw new InvalidFilterError(validation.error || 'Invalid date filter');
179
+ }
180
+ return {
181
+ filterType: 'date',
182
+ type: filterOp,
183
+ filter: dateValue
184
+ };
185
+ }
186
+ catch (error) {
187
+ throw new InvalidFilterError(error instanceof Error ? error.message : 'Invalid date filter');
188
+ }
189
+ }
190
+ if (isNumberOperation(filterOp)) {
191
+ const numValue = validateAndParseNumber(value);
192
+ return {
193
+ filterType: 'number',
194
+ type: filterOp,
195
+ filter: numValue
196
+ };
197
+ }
198
+ if (isSharedOperation(filterOp)) {
199
+ const detectedType = detectFilterTypeForSharedOperation(filterOp, value);
200
+ if (detectedType === 'date') {
201
+ try {
202
+ const dateValue = validateAndParseDate(value);
203
+ return {
204
+ filterType: 'date',
205
+ type: filterOp,
206
+ filter: dateValue
207
+ };
208
+ }
209
+ catch {
210
+ }
211
+ }
212
+ if (detectedType === 'number') {
213
+ const numValue = tryParseNumber(value);
214
+ if (numValue !== null) {
215
+ return {
216
+ filterType: 'number',
217
+ type: filterOp,
218
+ filter: numValue
219
+ };
220
+ }
221
+ }
222
+ return {
223
+ filterType: 'text',
224
+ type: filterOp,
225
+ filter: filterOp === 'blank' || filterOp === 'notBlank' ? '' : value || ''
226
+ };
227
+ }
228
+ return {
229
+ filterType: 'text',
230
+ type: filterOp,
231
+ filter: value || ''
232
+ };
233
+ }
234
+ export function parseIndividualParams(searchParams, config) {
235
+ const filterState = {};
236
+ for (const [param, value] of searchParams.entries()) {
237
+ if (!param.startsWith(config.paramPrefix))
238
+ continue;
239
+ try {
240
+ const { column: columnName, operation } = extractColumnAndOperation(param, config.paramPrefix);
241
+ const filterParam = parseFilterOperation(operation, value);
242
+ if (filterParam.filterType === 'text') {
243
+ const validatedValue = validateFilterValue(value, config, filterParam.type);
244
+ filterState[columnName] = {
245
+ ...filterParam,
246
+ filter: validatedValue
247
+ };
248
+ }
249
+ else {
250
+ filterState[columnName] = filterParam;
251
+ }
252
+ }
253
+ catch (error) {
254
+ config.onParseError?.(error);
255
+ continue;
256
+ }
257
+ }
258
+ return filterState;
259
+ }
260
+ //# sourceMappingURL=individual-params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"individual-params.js","sourceRoot":"","sources":["../../src/core/individual-params.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- import type { FilterState, SerializationFormat, FormatSerializer } from '../types.js';
1
+ import type { FilterState, SerializationFormat, FormatSerializer, ParseConfig } from '../types.js';
2
2
  /**
3
3
  * QueryString format serializer
4
- * Reuses existing URL generation logic but groups into single parameter
4
+ * Writes the individual filter parameters as one query string value
5
5
  */
6
6
  export declare class QueryStringSerializer implements FormatSerializer {
7
7
  readonly format: SerializationFormat;
8
- serialize(filterState: FilterState): string;
9
- deserialize(value: string): FilterState;
8
+ serialize(filterState: FilterState, config?: ParseConfig): string;
9
+ deserialize(value: string, config?: ParseConfig): FilterState;
10
10
  }
11
11
  /**
12
12
  * JSON format serializer
@@ -14,8 +14,8 @@ export declare class QueryStringSerializer implements FormatSerializer {
14
14
  */
15
15
  export declare class JsonSerializer implements FormatSerializer {
16
16
  readonly format: SerializationFormat;
17
- serialize(filterState: FilterState): string;
18
- deserialize(value: string): FilterState;
17
+ serialize(filterState: FilterState, config?: ParseConfig): string;
18
+ deserialize(value: string, config?: ParseConfig): FilterState;
19
19
  }
20
20
  /**
21
21
  * Base64 format serializer
@@ -23,7 +23,6 @@ export declare class JsonSerializer implements FormatSerializer {
23
23
  */
24
24
  export declare class Base64Serializer implements FormatSerializer {
25
25
  readonly format: SerializationFormat;
26
- private jsonSerializer;
27
- serialize(filterState: FilterState): string;
28
- deserialize(value: string): FilterState;
26
+ serialize(filterState: FilterState, config?: ParseConfig): string;
27
+ deserialize(value: string, config?: ParseConfig): FilterState;
29
28
  }
@@ -1,87 +1,85 @@
1
- import { DEFAULT_CONFIG } from '../index.js';
2
- import { generateUrl } from '../url-generator.js';
3
- import { parseUrlFilters } from '../url-parser.js';
4
- import { isValidColumnFilter } from '../validation.js';
5
- /**
6
- * QueryString format serializer
7
- * Reuses existing URL generation logic but groups into single parameter
8
- */
1
+ import { InvalidSerializationError } from '../types.js';
2
+ import { parseIndividualParams, serializeFilters } from '../individual-params.js';
3
+ import { DEFAULT_CONFIG, isValidColumnFilter, validateFilterValue } from '../validation.js';
4
+ function dropOverLengthTextValues(filterState, config, format) {
5
+ const cfg = config ?? DEFAULT_CONFIG;
6
+ const result = {};
7
+ for (const [column, filter] of Object.entries(filterState)) {
8
+ if (filter.filterType === 'text') {
9
+ try {
10
+ validateFilterValue(filter.filter, cfg, filter.type);
11
+ }
12
+ catch (error) {
13
+ cfg.onParseError?.(new InvalidSerializationError(format, error));
14
+ continue;
15
+ }
16
+ }
17
+ result[column] = filter;
18
+ }
19
+ return result;
20
+ }
21
+ function parseAndValidateJson(value) {
22
+ try {
23
+ const parsed = JSON.parse(value);
24
+ if (typeof parsed !== 'object' || parsed === null) {
25
+ throw new Error('Invalid JSON: must be an object');
26
+ }
27
+ for (const [columnId, filter] of Object.entries(parsed)) {
28
+ if (!isValidColumnFilter(filter)) {
29
+ throw new Error(`Invalid JSON: filter for column ${columnId} is not a valid filter object`);
30
+ }
31
+ }
32
+ return parsed;
33
+ }
34
+ catch (error) {
35
+ throw new Error(`JSON parsing failed: ${error.message}`);
36
+ }
37
+ }
9
38
  export class QueryStringSerializer {
10
39
  format = 'querystring';
11
- serialize(filterState) {
12
- // Create a temporary config for individual parameter generation
13
- const tempConfig = {
14
- gridApi: null, // Not used in URL generation
15
- ...DEFAULT_CONFIG
16
- };
17
- // Generate URL with individual parameters
18
- const tempUrl = generateUrl('http://example.com', filterState, tempConfig);
19
- const urlObj = new URL(tempUrl);
20
- // Extract just the search params (without the ?)
21
- return urlObj.search.slice(1);
40
+ serialize(filterState, config) {
41
+ return serializeFilters(filterState, innerConfig(config)).toString();
22
42
  }
23
- deserialize(value) {
24
- // Create a temporary URL with the query string
25
- const tempUrl = `http://example.com?${value}`;
26
- // Create a temporary config for parsing
27
- const tempConfig = {
28
- gridApi: null, // Not used in URL generation
29
- ...DEFAULT_CONFIG
30
- };
31
- return parseUrlFilters(tempUrl, tempConfig);
43
+ deserialize(value, config) {
44
+ return parseIndividualParams(new URLSearchParams(value), innerConfig(config));
32
45
  }
33
46
  }
34
- /**
35
- * JSON format serializer
36
- * Serializes FilterState directly as JSON
37
- */
47
+ function innerConfig(config) {
48
+ if (!config)
49
+ return DEFAULT_CONFIG;
50
+ const onParseError = config.onParseError ?? DEFAULT_CONFIG.onParseError;
51
+ return {
52
+ ...DEFAULT_CONFIG,
53
+ maxValueLength: config.maxValueLength ?? DEFAULT_CONFIG.maxValueLength,
54
+ onParseError: error => onParseError(new InvalidSerializationError('querystring', error))
55
+ };
56
+ }
38
57
  export class JsonSerializer {
39
58
  format = 'json';
40
- serialize(filterState) {
41
- return JSON.stringify(filterState);
59
+ serialize(filterState, config) {
60
+ return JSON.stringify(dropOverLengthTextValues(filterState, config, 'json'));
42
61
  }
43
- deserialize(value) {
44
- try {
45
- const parsed = JSON.parse(value);
46
- // Validate that it's a proper FilterState object
47
- if (typeof parsed !== 'object' || parsed === null) {
48
- throw new Error('Invalid JSON: must be an object');
49
- }
50
- // Basic validation of the structure
51
- for (const [columnId, filter] of Object.entries(parsed)) {
52
- if (typeof columnId !== 'string') {
53
- throw new Error('Invalid JSON: column IDs must be strings');
54
- }
55
- if (!isValidColumnFilter(filter)) {
56
- throw new Error(`Invalid JSON: filter for column ${columnId} is not a valid filter object`);
57
- }
58
- }
59
- return parsed;
60
- }
61
- catch (error) {
62
- throw new Error(`JSON parsing failed: ${error.message}`);
63
- }
62
+ deserialize(value, config) {
63
+ return dropOverLengthTextValues(parseAndValidateJson(value), config, 'json');
64
64
  }
65
65
  }
66
- /**
67
- * Base64 format serializer
68
- * JSON encoded then base64 encoded for maximum compactness
69
- */
70
66
  export class Base64Serializer {
71
67
  format = 'base64';
72
- jsonSerializer = new JsonSerializer();
73
- serialize(filterState) {
74
- const jsonString = this.jsonSerializer.serialize(filterState);
75
- return btoa(jsonString);
68
+ serialize(filterState, config) {
69
+ const filtered = dropOverLengthTextValues(filterState, config, 'base64');
70
+ return btoa(escapeNonAscii(JSON.stringify(filtered)));
76
71
  }
77
- deserialize(value) {
72
+ deserialize(value, config) {
78
73
  try {
79
74
  const decoded = atob(value);
80
- return this.jsonSerializer.deserialize(decoded);
75
+ return dropOverLengthTextValues(parseAndValidateJson(decoded), config, 'base64');
81
76
  }
82
77
  catch (error) {
83
78
  throw new Error(`Base64 decoding failed: ${error.message}`);
84
79
  }
85
80
  }
86
81
  }
82
+ function escapeNonAscii(json) {
83
+ return json.replace(/[\u0080-\uffff]/g, char => `\\u${char.charCodeAt(0).toString(16).padStart(4, '0')}`);
84
+ }
87
85
  //# sourceMappingURL=formats.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formats.js","sourceRoot":"","sources":["../../../src/core/serialization/formats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formats.js","sourceRoot":"","sources":["../../../src/core/serialization/formats.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,kBAAkB,CAAA;AASzB,SAAS,wBAAwB,CAC/B,WAAwB,EACxB,MAA+B,EAC/B,MAA2B;IAE3B,MAAM,GAAG,GAAG,MAAM,IAAI,cAAc,CAAA;IACpC,MAAM,MAAM,GAAgB,EAAE,CAAA;IAC9B,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3D,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;YACtD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,YAAY,EAAE,CAChB,IAAI,yBAAyB,CAAC,MAAM,EAAE,KAAc,CAAC,CACtD,CAAA;gBACD,SAAQ;YACV,CAAC;QACH,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;IACzB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAGD,SAAS,oBAAoB,CAAC,KAAa;IACzC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAEhC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;QACpD,CAAC;QAED,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CACb,mCAAmC,QAAQ,+BAA+B,CAC3E,CAAA;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAqB,CAAA;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,wBAAyB,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;IACrE,CAAC;AACH,CAAC;AAMD,MAAM,OAAO,qBAAqB;IACvB,MAAM,GAAwB,aAAa,CAAA;IAEpD,SAAS,CAAC,WAAwB,EAAE,MAAoB;QACtD,OAAO,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IACtE,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,MAAoB;QAC7C,OAAO,qBAAqB,CAC1B,IAAI,eAAe,CAAC,KAAK,CAAC,EAC1B,WAAW,CAAC,MAAM,CAAC,CACpB,CAAA;IACH,CAAC;CACF;AASD,SAAS,WAAW,CAAC,MAAoB;IACvC,IAAI,CAAC,MAAM;QAAE,OAAO,cAAc,CAAA;IAGlC,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,cAAc,CAAC,YAAY,CAAA;IACvE,OAAO;QACL,GAAG,cAAc;QACjB,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,cAAc,CAAC,cAAc;QAGtE,YAAY,EAAE,KAAK,CAAC,EAAE,CACpB,YAAY,CAAC,IAAI,yBAAyB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;KACpE,CAAA;AACH,CAAC;AAMD,MAAM,OAAO,cAAc;IAChB,MAAM,GAAwB,MAAM,CAAA;IAE7C,SAAS,CAAC,WAAwB,EAAE,MAAoB;QACtD,OAAO,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC9E,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,MAAoB;QAC7C,OAAO,wBAAwB,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9E,CAAC;CACF;AAMD,MAAM,OAAO,gBAAgB;IAClB,MAAM,GAAwB,QAAQ,CAAA;IAE/C,SAAS,CAAC,WAAwB,EAAE,MAAoB;QACtD,MAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QACxE,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IACvD,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,MAAoB;QAC7C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;YAC3B,OAAO,wBAAwB,CAC7B,oBAAoB,CAAC,OAAO,CAAC,EAC7B,MAAM,EACN,QAAQ,CACT,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,2BAA4B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;QACxE,CAAC;IACH,CAAC;CACF;AAaD,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI,CAAC,OAAO,CACjB,kBAAkB,EAClB,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CACjE,CAAA;AACH,CAAC"}
@@ -1,21 +1,26 @@
1
- import type { FilterState, SerializationFormat, FormatSerializer, GroupedSerializationResult, InternalConfig } from '../types.js';
1
+ import type { FilterState, SerializationFormat, FormatSerializer, GroupedSerializationResult, ParseConfig } from '../types.js';
2
2
  /**
3
3
  * Serialize filter state using grouped serialization
4
4
  * @param filterState - The filter state to serialize
5
- * @param config - Internal configuration
5
+ * @param config - Parse configuration (does not need a grid)
6
6
  * @returns Grouped serialization result with parameter name and value
7
7
  */
8
- export declare function serializeGrouped(filterState: FilterState, config: InternalConfig): GroupedSerializationResult;
8
+ export declare function serializeGrouped(filterState: FilterState, config: ParseConfig): GroupedSerializationResult;
9
9
  /**
10
10
  * Deserialize grouped filter state from URL parameter value
11
11
  * @param value - The serialized value from URL parameter
12
12
  * @param format - The serialization format to use
13
- * @param config - Internal configuration for error handling
13
+ * @param config - Parse configuration for error handling (does not need a grid)
14
14
  * @returns Deserialized filter state
15
15
  */
16
- export declare function deserializeGrouped(value: string, format: SerializationFormat, config: InternalConfig): FilterState;
16
+ export declare function deserializeGrouped(value: string, format: SerializationFormat, config: ParseConfig): FilterState;
17
17
  /**
18
18
  * Detect if a URL contains grouped serialization parameters
19
+ *
20
+ * @deprecated parseUrlFilters no longer uses this. It reads only
21
+ * `config.groupedParam` and decodes it with `config.format`, because a guessed
22
+ * format takes any non-empty value as grouped filters (#210). This function
23
+ * will be removed in v1.0.
19
24
  * @param url - URL to analyze
20
25
  * @param possibleParams - Array of possible grouped parameter names to check
21
26
  * @returns Detection result with format and value if found