@spartan-ng/cli 0.0.1-alpha.717 → 0.0.1-alpha.718

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 (30) hide show
  1. package/package.json +1 -1
  2. package/src/generators/base/generator.d.ts +1 -0
  3. package/src/generators/base/generator.js +66 -0
  4. package/src/generators/base/generator.js.map +1 -1
  5. package/src/generators/healthcheck/healthchecks/version.js +5 -1
  6. package/src/generators/healthcheck/healthchecks/version.js.map +1 -1
  7. package/src/generators/migrate-helm-libraries/generator.js +26 -7
  8. package/src/generators/migrate-helm-libraries/generator.js.map +1 -1
  9. package/src/generators/migrate-icon/generator.js +1 -1
  10. package/src/generators/migrate-icon/generator.js.map +1 -1
  11. package/src/generators/migrate-scroll-area/generator.js +1 -1
  12. package/src/generators/migrate-scroll-area/generator.js.map +1 -1
  13. package/src/generators/ui/libs/calendar/files/lib/hlm-calendar-multi.ts.template +134 -183
  14. package/src/generators/ui/libs/calendar/files/lib/hlm-calendar-range.ts.template +133 -176
  15. package/src/generators/ui/libs/calendar/files/lib/hlm-calendar.ts.template +121 -169
  16. package/src/generators/ui/libs/date-picker/files/lib/hlm-date-picker-multi.ts.template +1 -1
  17. package/src/generators/ui/libs/date-picker/files/lib/hlm-date-picker.ts.template +1 -1
  18. package/src/generators/ui/libs/date-picker/files/lib/hlm-date-range-picker.ts.template +1 -1
  19. package/src/generators/ui/libs/utils/files/index.ts.template +1 -0
  20. package/src/generators/ui/libs/utils/files/lib/provide-spartan-hlm.ts.template +34 -0
  21. package/src/generators/ui/style-luma.css +0 -4
  22. package/src/generators/ui/style-lyra.css +0 -4
  23. package/src/generators/ui/style-maia.css +0 -4
  24. package/src/generators/ui/style-mira.css +0 -4
  25. package/src/generators/ui/style-nova.css +0 -4
  26. package/src/generators/ui/style-vega.css +0 -4
  27. package/src/generators/ui/supported-ui-libraries.json +43 -44
  28. package/src/utils/string-change.d.ts +26 -0
  29. package/src/utils/string-change.js +84 -0
  30. package/src/utils/string-change.js.map +1 -0
@@ -3,7 +3,7 @@
3
3
  "name": "accordion",
4
4
  "peerDependencies": {
5
5
  "@angular/core": ">=21.0.0 <23.0.0",
6
- "@spartan-ng/brain": "0.0.1-alpha.717",
6
+ "@spartan-ng/brain": "0.0.1-alpha.718",
7
7
  "@ng-icons/core": ">=32.0.0 <34.0.0",
8
8
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
9
9
  "clsx": "^2.1.1"
@@ -20,7 +20,7 @@
20
20
  "name": "alert-dialog",
21
21
  "peerDependencies": {
22
22
  "@angular/core": ">=21.0.0 <23.0.0",
23
- "@spartan-ng/brain": "0.0.1-alpha.717",
23
+ "@spartan-ng/brain": "0.0.1-alpha.718",
24
24
  "clsx": "^2.1.1"
25
25
  }
26
26
  },
@@ -36,7 +36,7 @@
36
36
  "peerDependencies": {
37
37
  "@angular/core": ">=21.0.0 <23.0.0",
38
38
  "@angular/forms": ">=21.0.0 <23.0.0",
39
- "@spartan-ng/brain": "0.0.1-alpha.717",
39
+ "@spartan-ng/brain": "0.0.1-alpha.718",
40
40
  "@angular/cdk": ">=21.0.0 <23.0.0",
41
41
  "@ng-icons/core": ">=32.0.0 <34.0.0",
42
42
  "@ng-icons/lucide": ">=32.0.0 <34.0.0"
@@ -46,7 +46,7 @@
46
46
  "name": "avatar",
47
47
  "peerDependencies": {
48
48
  "@angular/core": ">=21.0.0 <23.0.0",
49
- "@spartan-ng/brain": "0.0.1-alpha.717"
49
+ "@spartan-ng/brain": "0.0.1-alpha.718"
50
50
  }
51
51
  },
52
52
  "badge": {
@@ -70,7 +70,7 @@
70
70
  "name": "button",
71
71
  "peerDependencies": {
72
72
  "@angular/core": ">=21.0.0 <23.0.0",
73
- "@spartan-ng/brain": "0.0.1-alpha.717",
73
+ "@spartan-ng/brain": "0.0.1-alpha.718",
74
74
  "class-variance-authority": "^0.7.0",
75
75
  "clsx": "^2.1.1"
76
76
  }
@@ -79,20 +79,18 @@
79
79
  "name": "button-group",
80
80
  "peerDependencies": {
81
81
  "@angular/core": ">=21.0.0 <23.0.0",
82
- "@spartan-ng/brain": "0.0.1-alpha.717",
82
+ "@spartan-ng/brain": "0.0.1-alpha.718",
83
83
  "class-variance-authority": "^0.7.0"
84
84
  }
85
85
  },
86
86
  "calendar": {
87
87
  "name": "calendar",
88
88
  "peerDependencies": {
89
- "@angular/cdk": ">=21.0.0 <23.0.0",
90
89
  "@angular/common": ">=21.0.0 <23.0.0",
91
90
  "@angular/core": ">=21.0.0 <23.0.0",
92
91
  "@ng-icons/core": ">=32.0.0 <34.0.0",
93
92
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
94
- "@spartan-ng/brain": "0.0.1-alpha.717",
95
- "clsx": "^2.1.1"
93
+ "@spartan-ng/brain": "0.0.1-alpha.718"
96
94
  }
97
95
  },
98
96
  "card": {
@@ -121,7 +119,7 @@
121
119
  "@angular/cdk": ">=21.0.0 <23.0.0",
122
120
  "@ng-icons/core": ">=32.0.0 <34.0.0",
123
121
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
124
- "@spartan-ng/brain": "0.0.1-alpha.717",
122
+ "@spartan-ng/brain": "0.0.1-alpha.718",
125
123
  "clsx": "^2.1.1"
126
124
  }
127
125
  },
@@ -129,7 +127,7 @@
129
127
  "name": "collapsible",
130
128
  "peerDependencies": {
131
129
  "@angular/core": ">=21.0.0 <23.0.0",
132
- "@spartan-ng/brain": "0.0.1-alpha.717"
130
+ "@spartan-ng/brain": "0.0.1-alpha.718"
133
131
  }
134
132
  },
135
133
  "combobox": {
@@ -137,7 +135,7 @@
137
135
  "peerDependencies": {
138
136
  "@angular/core": ">=21.0.0 <23.0.0",
139
137
  "@angular/forms": ">=21.0.0 <23.0.0",
140
- "@spartan-ng/brain": "0.0.1-alpha.717",
138
+ "@spartan-ng/brain": "0.0.1-alpha.718",
141
139
  "@angular/cdk": ">=21.0.0 <23.0.0",
142
140
  "@ng-icons/core": ">=32.0.0 <34.0.0",
143
141
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
@@ -149,7 +147,7 @@
149
147
  "peerDependencies": {
150
148
  "@angular/cdk": ">=21.0.0 <23.0.0",
151
149
  "@angular/core": ">=21.0.0 <23.0.0",
152
- "@spartan-ng/brain": "0.0.1-alpha.717",
150
+ "@spartan-ng/brain": "0.0.1-alpha.718",
153
151
  "clsx": "^2.1.1",
154
152
  "@ng-icons/core": ">=32.0.0 <34.0.0",
155
153
  "@ng-icons/lucide": ">=32.0.0 <34.0.0"
@@ -159,7 +157,7 @@
159
157
  "name": "context-menu",
160
158
  "peerDependencies": {
161
159
  "@angular/core": ">=21.0.0 <23.0.0",
162
- "@spartan-ng/brain": "0.0.1-alpha.717",
160
+ "@spartan-ng/brain": "0.0.1-alpha.718",
163
161
  "@angular/cdk": ">=21.0.0 <23.0.0",
164
162
  "rxjs": "^7.8.0"
165
163
  }
@@ -169,7 +167,7 @@
169
167
  "peerDependencies": {
170
168
  "@angular/core": ">=21.0.0 <23.0.0",
171
169
  "@angular/forms": ">=21.0.0 <23.0.0",
172
- "@spartan-ng/brain": "0.0.1-alpha.717",
170
+ "@spartan-ng/brain": "0.0.1-alpha.718",
173
171
  "@angular/cdk": ">=21.0.0 <23.0.0",
174
172
  "@ng-icons/core": ">=32.0.0 <34.0.0",
175
173
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
@@ -180,7 +178,7 @@
180
178
  "name": "dialog",
181
179
  "peerDependencies": {
182
180
  "@angular/core": ">=21.0.0 <23.0.0",
183
- "@spartan-ng/brain": "0.0.1-alpha.717",
181
+ "@spartan-ng/brain": "0.0.1-alpha.718",
184
182
  "@angular/cdk": ">=21.0.0 <23.0.0",
185
183
  "@angular/common": ">=21.0.0 <23.0.0",
186
184
  "@ng-icons/core": ">=32.0.0 <34.0.0",
@@ -192,7 +190,7 @@
192
190
  "name": "drawer",
193
191
  "peerDependencies": {
194
192
  "@angular/core": ">=21.0.0 <23.0.0",
195
- "@spartan-ng/brain": "0.0.1-alpha.717",
193
+ "@spartan-ng/brain": "0.0.1-alpha.718",
196
194
  "clsx": "^2.1.1"
197
195
  }
198
196
  },
@@ -203,7 +201,7 @@
203
201
  "@ng-icons/core": ">=32.0.0 <34.0.0",
204
202
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
205
203
  "@angular/cdk": ">=21.0.0 <23.0.0",
206
- "@spartan-ng/brain": "0.0.1-alpha.717",
204
+ "@spartan-ng/brain": "0.0.1-alpha.718",
207
205
  "rxjs": "^7.8.0"
208
206
  }
209
207
  },
@@ -218,7 +216,7 @@
218
216
  "name": "field",
219
217
  "peerDependencies": {
220
218
  "@angular/core": ">=21.0.0 <23.0.0",
221
- "@spartan-ng/brain": "0.0.1-alpha.717",
219
+ "@spartan-ng/brain": "0.0.1-alpha.718",
222
220
  "@angular/cdk": ">=21.0.0 <23.0.0",
223
221
  "class-variance-authority": "^0.7.0"
224
222
  }
@@ -227,7 +225,7 @@
227
225
  "name": "hover-card",
228
226
  "peerDependencies": {
229
227
  "@angular/core": ">=21.0.0 <23.0.0",
230
- "@spartan-ng/brain": "0.0.1-alpha.717"
228
+ "@spartan-ng/brain": "0.0.1-alpha.718"
231
229
  }
232
230
  },
233
231
  "icon": {
@@ -243,7 +241,7 @@
243
241
  "peerDependencies": {
244
242
  "@angular/core": ">=21.0.0 <23.0.0",
245
243
  "@angular/forms": ">=21.0.0 <23.0.0",
246
- "@spartan-ng/brain": "0.0.1-alpha.717"
244
+ "@spartan-ng/brain": "0.0.1-alpha.718"
247
245
  }
248
246
  },
249
247
  "input-group": {
@@ -260,7 +258,7 @@
260
258
  "@ng-icons/core": ">=32.0.0 <34.0.0",
261
259
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
262
260
  "@angular/cdk": ">=21.0.0 <23.0.0",
263
- "@spartan-ng/brain": "0.0.1-alpha.717"
261
+ "@spartan-ng/brain": "0.0.1-alpha.718"
264
262
  }
265
263
  },
266
264
  "item": {
@@ -268,7 +266,7 @@
268
266
  "peerDependencies": {
269
267
  "@angular/core": ">=21.0.0 <23.0.0",
270
268
  "class-variance-authority": "^0.7.0",
271
- "@spartan-ng/brain": "0.0.1-alpha.717"
269
+ "@spartan-ng/brain": "0.0.1-alpha.718"
272
270
  }
273
271
  },
274
272
  "kbd": {
@@ -281,14 +279,14 @@
281
279
  "name": "label",
282
280
  "peerDependencies": {
283
281
  "@angular/core": ">=21.0.0 <23.0.0",
284
- "@spartan-ng/brain": "0.0.1-alpha.717"
282
+ "@spartan-ng/brain": "0.0.1-alpha.718"
285
283
  }
286
284
  },
287
285
  "menubar": {
288
286
  "name": "menubar",
289
287
  "peerDependencies": {
290
288
  "@angular/core": ">=21.0.0 <23.0.0",
291
- "@spartan-ng/brain": "0.0.1-alpha.717",
289
+ "@spartan-ng/brain": "0.0.1-alpha.718",
292
290
  "@angular/cdk": ">=21.0.0 <23.0.0",
293
291
  "rxjs": "^7.8.0"
294
292
  }
@@ -301,7 +299,7 @@
301
299
  "@angular/forms": ">=21.0.0 <23.0.0",
302
300
  "@ng-icons/core": ">=32.0.0 <34.0.0",
303
301
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
304
- "@spartan-ng/brain": "0.0.1-alpha.717",
302
+ "@spartan-ng/brain": "0.0.1-alpha.718",
305
303
  "clsx": "^2.1.1"
306
304
  }
307
305
  },
@@ -310,7 +308,7 @@
310
308
  "peerDependencies": {
311
309
  "@angular/cdk": ">=21.0.0 <23.0.0",
312
310
  "@angular/core": ">=21.0.0 <23.0.0",
313
- "@spartan-ng/brain": "0.0.1-alpha.717",
311
+ "@spartan-ng/brain": "0.0.1-alpha.718",
314
312
  "@ng-icons/core": ">=32.0.0 <34.0.0",
315
313
  "@ng-icons/lucide": ">=32.0.0 <34.0.0"
316
314
  }
@@ -331,7 +329,7 @@
331
329
  "peerDependencies": {
332
330
  "@angular/cdk": ">=21.0.0 <23.0.0",
333
331
  "@angular/core": ">=21.0.0 <23.0.0",
334
- "@spartan-ng/brain": "0.0.1-alpha.717"
332
+ "@spartan-ng/brain": "0.0.1-alpha.718"
335
333
  }
336
334
  },
337
335
  "progress": {
@@ -339,7 +337,7 @@
339
337
  "peerDependencies": {
340
338
  "@angular/cdk": ">=21.0.0 <23.0.0",
341
339
  "@angular/core": ">=21.0.0 <23.0.0",
342
- "@spartan-ng/brain": "0.0.1-alpha.717"
340
+ "@spartan-ng/brain": "0.0.1-alpha.718"
343
341
  }
344
342
  },
345
343
  "radio-group": {
@@ -347,7 +345,7 @@
347
345
  "peerDependencies": {
348
346
  "@angular/core": ">=21.0.0 <23.0.0",
349
347
  "@angular/forms": ">=21.0.0 <23.0.0",
350
- "@spartan-ng/brain": "0.0.1-alpha.717",
348
+ "@spartan-ng/brain": "0.0.1-alpha.718",
351
349
  "clsx": "^2.1.1",
352
350
  "@angular/cdk": ">=21.0.0 <23.0.0",
353
351
  "@angular/common": ">=21.0.0 <23.0.0"
@@ -357,7 +355,7 @@
357
355
  "name": "resizable",
358
356
  "peerDependencies": {
359
357
  "@angular/core": ">=21.0.0 <23.0.0",
360
- "@spartan-ng/brain": "0.0.1-alpha.717"
358
+ "@spartan-ng/brain": "0.0.1-alpha.718"
361
359
  }
362
360
  },
363
361
  "scroll-area": {
@@ -373,7 +371,7 @@
373
371
  "@angular/core": ">=21.0.0 <23.0.0",
374
372
  "@angular/forms": ">=21.0.0 <23.0.0",
375
373
  "@angular/cdk": ">=21.0.0 <23.0.0",
376
- "@spartan-ng/brain": "0.0.1-alpha.717",
374
+ "@spartan-ng/brain": "0.0.1-alpha.718",
377
375
  "@ng-icons/core": ">=32.0.0 <34.0.0",
378
376
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
379
377
  "clsx": "^2.1.1"
@@ -383,14 +381,14 @@
383
381
  "name": "separator",
384
382
  "peerDependencies": {
385
383
  "@angular/core": ">=21.0.0 <23.0.0",
386
- "@spartan-ng/brain": "0.0.1-alpha.717"
384
+ "@spartan-ng/brain": "0.0.1-alpha.718"
387
385
  }
388
386
  },
389
387
  "sheet": {
390
388
  "name": "sheet",
391
389
  "peerDependencies": {
392
390
  "@angular/core": ">=21.0.0 <23.0.0",
393
- "@spartan-ng/brain": "0.0.1-alpha.717",
391
+ "@spartan-ng/brain": "0.0.1-alpha.718",
394
392
  "@angular/cdk": ">=21.0.0 <23.0.0",
395
393
  "@ng-icons/core": ">=32.0.0 <34.0.0",
396
394
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
@@ -402,7 +400,7 @@
402
400
  "peerDependencies": {
403
401
  "@angular/core": ">=21.0.0 <23.0.0",
404
402
  "@angular/cdk": ">=21.0.0 <23.0.0",
405
- "@spartan-ng/brain": "0.0.1-alpha.717",
403
+ "@spartan-ng/brain": "0.0.1-alpha.718",
406
404
  "class-variance-authority": "^0.7.0",
407
405
  "@ng-icons/core": ">=32.0.0 <34.0.0",
408
406
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
@@ -421,7 +419,7 @@
421
419
  "peerDependencies": {
422
420
  "@angular/core": ">=21.0.0 <23.0.0",
423
421
  "@angular/forms": ">=21.0.0 <23.0.0",
424
- "@spartan-ng/brain": "0.0.1-alpha.717"
422
+ "@spartan-ng/brain": "0.0.1-alpha.718"
425
423
  }
426
424
  },
427
425
  "sonner": {
@@ -431,7 +429,7 @@
431
429
  "@angular/core": ">=21.0.0 <23.0.0",
432
430
  "@ng-icons/core": ">=32.0.0 <34.0.0",
433
431
  "@ng-icons/lucide": ">=32.0.0 <34.0.0",
434
- "@spartan-ng/brain": "0.0.1-alpha.717",
432
+ "@spartan-ng/brain": "0.0.1-alpha.718",
435
433
  "clsx": "^2.1.1"
436
434
  }
437
435
  },
@@ -449,7 +447,7 @@
449
447
  "@angular/core": ">=21.0.0 <23.0.0",
450
448
  "@angular/cdk": ">=21.0.0 <23.0.0",
451
449
  "@angular/forms": ">=21.0.0 <23.0.0",
452
- "@spartan-ng/brain": "0.0.1-alpha.717",
450
+ "@spartan-ng/brain": "0.0.1-alpha.718",
453
451
  "clsx": "^2.1.1"
454
452
  }
455
453
  },
@@ -463,7 +461,7 @@
463
461
  "name": "tabs",
464
462
  "peerDependencies": {
465
463
  "@angular/core": ">=21.0.0 <23.0.0",
466
- "@spartan-ng/brain": "0.0.1-alpha.717",
464
+ "@spartan-ng/brain": "0.0.1-alpha.718",
467
465
  "class-variance-authority": "^0.7.0",
468
466
  "@angular/cdk": ">=21.0.0 <23.0.0",
469
467
  "@ng-icons/core": ">=32.0.0 <34.0.0",
@@ -477,14 +475,14 @@
477
475
  "peerDependencies": {
478
476
  "@angular/core": ">=21.0.0 <23.0.0",
479
477
  "@angular/forms": ">=21.0.0 <23.0.0",
480
- "@spartan-ng/brain": "0.0.1-alpha.717"
478
+ "@spartan-ng/brain": "0.0.1-alpha.718"
481
479
  }
482
480
  },
483
481
  "toggle": {
484
482
  "name": "toggle",
485
483
  "peerDependencies": {
486
484
  "@angular/core": ">=21.0.0 <23.0.0",
487
- "@spartan-ng/brain": "0.0.1-alpha.717",
485
+ "@spartan-ng/brain": "0.0.1-alpha.718",
488
486
  "class-variance-authority": "^0.7.0"
489
487
  }
490
488
  },
@@ -492,7 +490,7 @@
492
490
  "name": "toggle-group",
493
491
  "peerDependencies": {
494
492
  "@angular/core": ">=21.0.0 <23.0.0",
495
- "@spartan-ng/brain": "0.0.1-alpha.717",
493
+ "@spartan-ng/brain": "0.0.1-alpha.718",
496
494
  "@angular/cdk": ">=21.0.0 <23.0.0"
497
495
  }
498
496
  },
@@ -500,7 +498,7 @@
500
498
  "name": "tooltip",
501
499
  "peerDependencies": {
502
500
  "@angular/core": ">=21.0.0 <23.0.0",
503
- "@spartan-ng/brain": "0.0.1-alpha.717",
501
+ "@spartan-ng/brain": "0.0.1-alpha.718",
504
502
  "class-variance-authority": "^0.7.0"
505
503
  }
506
504
  },
@@ -516,7 +514,8 @@
516
514
  "@angular/core": ">=21.0.0 <23.0.0",
517
515
  "tailwind-merge": "^3.3.1",
518
516
  "@angular/common": ">=21.0.0 <23.0.0",
519
- "clsx": "^2.1.1"
517
+ "clsx": "^2.1.1",
518
+ "@angular/cdk": ">=21.0.0 <23.0.0"
520
519
  }
521
520
  }
522
521
  }
@@ -0,0 +1,26 @@
1
+ export declare enum ChangeType {
2
+ Delete = "Delete",
3
+ Insert = "Insert"
4
+ }
5
+ export interface StringDeletion {
6
+ type: ChangeType.Delete;
7
+ /** Place in the original text to start deleting characters */
8
+ start: number;
9
+ /** Number of characters to delete */
10
+ length: number;
11
+ }
12
+ export interface StringInsertion {
13
+ type: ChangeType.Insert;
14
+ /** Text to insert into the original text */
15
+ text: string;
16
+ /** Place in the original text to insert new text */
17
+ index: number;
18
+ }
19
+ /** A change to be made to a string */
20
+ export type StringChange = StringInsertion | StringDeletion;
21
+ /**
22
+ * Applies a list of changes to a string's original value.
23
+ *
24
+ * This is useful when working with ASTs.
25
+ */
26
+ export declare function applyChangesToString(text: string, changes: StringChange[]): string;
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ // Vendored from @nx/devkit's `src/utils/string-change` (MIT licensed). Imported here rather than from
3
+ // `@nx/devkit` because these helpers are not part of devkit's public entry point - they only live under
4
+ // the deep `@nx/devkit/src/utils/string-change` path. That path resolves fine inside this monorepo (the
5
+ // dev `@nx/devkit` has no `exports` map) but throws `Package subpath './src/utils/string-change' is not
6
+ // defined by "exports"` once the CLI is installed as a real dependency against a devkit that does declare
7
+ // `exports`. Vendoring the (tiny, stable) implementation keeps it working regardless of how the consumer's
8
+ // `@nx/devkit` is packaged.
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.ChangeType = void 0;
11
+ exports.applyChangesToString = applyChangesToString;
12
+ var ChangeType;
13
+ (function (ChangeType) {
14
+ ChangeType["Delete"] = "Delete";
15
+ ChangeType["Insert"] = "Insert";
16
+ })(ChangeType || (exports.ChangeType = ChangeType = {}));
17
+ /**
18
+ * Applies a list of changes to a string's original value.
19
+ *
20
+ * This is useful when working with ASTs.
21
+ */
22
+ function applyChangesToString(text, changes) {
23
+ assertChangesValid(changes);
24
+ const sortedChanges = changes.sort((a, b) => {
25
+ const diff = getChangeIndex(a) - getChangeIndex(b);
26
+ if (diff === 0) {
27
+ if (a.type === b.type) {
28
+ return 0;
29
+ }
30
+ // When at the same place, Insert before Delete
31
+ return isStringInsertion(a) ? -1 : 1;
32
+ }
33
+ return diff;
34
+ });
35
+ let offset = 0;
36
+ for (const change of sortedChanges) {
37
+ const index = getChangeIndex(change) + offset;
38
+ if (isStringInsertion(change)) {
39
+ text = text.slice(0, index) + change.text + text.slice(index);
40
+ offset += change.text.length;
41
+ }
42
+ else {
43
+ text = text.slice(0, index) + text.slice(index + change.length);
44
+ offset -= change.length;
45
+ }
46
+ }
47
+ return text;
48
+ }
49
+ function assertChangesValid(changes) {
50
+ for (const change of changes) {
51
+ if (isStringInsertion(change)) {
52
+ if (!Number.isInteger(change.index)) {
53
+ throw new TypeError(`${change.index} must be an integer.`);
54
+ }
55
+ if (change.index < 0) {
56
+ throw new Error(`${change.index} must be a positive integer.`);
57
+ }
58
+ if (typeof change.text !== 'string') {
59
+ throw new Error(`${change.text} must be a string.`);
60
+ }
61
+ }
62
+ else {
63
+ if (!Number.isInteger(change.start)) {
64
+ throw new TypeError(`${change.start} must be an integer.`);
65
+ }
66
+ if (change.start < 0) {
67
+ throw new Error(`${change.start} must be a positive integer.`);
68
+ }
69
+ if (!Number.isInteger(change.length)) {
70
+ throw new TypeError(`${change.length} must be an integer.`);
71
+ }
72
+ if (change.length < 0) {
73
+ throw new Error(`${change.length} must be a positive integer.`);
74
+ }
75
+ }
76
+ }
77
+ }
78
+ function getChangeIndex(change) {
79
+ return isStringInsertion(change) ? change.index : change.start;
80
+ }
81
+ function isStringInsertion(change) {
82
+ return change.type === ChangeType.Insert;
83
+ }
84
+ //# sourceMappingURL=string-change.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-change.js","sourceRoot":"","sources":["../../../../../libs/cli/src/utils/string-change.ts"],"names":[],"mappings":";AAAA,sGAAsG;AACtG,wGAAwG;AACxG,wGAAwG;AACxG,wGAAwG;AACxG,0GAA0G;AAC1G,2GAA2G;AAC3G,4BAA4B;;;AA+B5B,oDA4BC;AAzDD,IAAY,UAGX;AAHD,WAAY,UAAU;IACrB,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;AAClB,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB;AAqBD;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,IAAY,EAAE,OAAuB;IACzE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAE5B,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3C,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;gBACvB,OAAO,CAAC,CAAC;YACV,CAAC;YACD,+CAA+C;YAC/C,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;QAC9C,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9D,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9B,CAAC;aAAM,CAAC;YACP,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAChE,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;QACzB,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAuB;IAClD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,SAAS,CAAC,GAAG,MAAM,CAAC,KAAK,sBAAsB,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,8BAA8B,CAAC,CAAC;YAChE,CAAC;YACD,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,oBAAoB,CAAC,CAAC;YACrD,CAAC;QACF,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,SAAS,CAAC,GAAG,MAAM,CAAC,KAAK,sBAAsB,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,8BAA8B,CAAC,CAAC;YAChE,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,sBAAsB,CAAC,CAAC;YAC7D,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,8BAA8B,CAAC,CAAC;YACjE,CAAC;QACF,CAAC;IACF,CAAC;AACF,CAAC;AAED,SAAS,cAAc,CAAC,MAAoB;IAC3C,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AAChE,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAoB;IAC9C,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,CAAC;AAC1C,CAAC"}