@atproto/lexicon 0.4.3 β†’ 0.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @atproto/lexicon
2
2
 
3
+ ## 0.4.5
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`72eba67af`](https://github.com/bluesky-social/atproto/commit/72eba67af1af8320b5400bcb9319d5c3c8407d99), [`72eba67af`](https://github.com/bluesky-social/atproto/commit/72eba67af1af8320b5400bcb9319d5c3c8407d99)]:
8
+ - @atproto/common-web@0.3.2
9
+
10
+ ## 0.4.4
11
+
12
+ ### Patch Changes
13
+
14
+ - [#3223](https://github.com/bluesky-social/atproto/pull/3223) [`9fd65ba0f`](https://github.com/bluesky-social/atproto/commit/9fd65ba0fa4caca59fd0e6156145e4c2618e3a95) Thanks [@gaearon](https://github.com/gaearon)! - Add fast paths that skip UTF8 encoding
15
+
3
16
  ## 0.4.3
4
17
 
5
18
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/validators/primitives.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,EACL,WAAW,EAIX,gBAAgB,EAGjB,MAAM,UAAU,CAAA;AAEjB,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CAoBlB;AAED,wBAAgB,OAAO,CACrB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CA+BlB;AAED,wBAAgB,OAAO,CACrB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CAmElB;AAED,wBAAgB,MAAM,CACpB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CA6JlB;AAED,wBAAgB,KAAK,CACnB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CAmClB;AAED,wBAAgB,OAAO,CACrB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CASlB;AAED,wBAAgB,OAAO,CACrB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CAUlB"}
1
+ {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/validators/primitives.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,EACL,WAAW,EAIX,gBAAgB,EAGjB,MAAM,UAAU,CAAA;AAEjB,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CAoBlB;AAED,wBAAgB,OAAO,CACrB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CA+BlB;AAED,wBAAgB,OAAO,CACrB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CAmElB;AAED,wBAAgB,MAAM,CACpB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CAsLlB;AAED,wBAAgB,KAAK,CACnB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CAmClB;AAED,wBAAgB,OAAO,CACrB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CASlB;AAED,wBAAgB,OAAO,CACrB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,gBAAgB,CAUlB"}
@@ -179,22 +179,41 @@ function string(lexicons, path, def, value) {
179
179
  }
180
180
  }
181
181
  // maxLength and minLength
182
- if (typeof def.maxLength === 'number' || typeof def.minLength === 'number') {
183
- const len = (0, common_web_1.utf8Len)(value);
184
- if (typeof def.maxLength === 'number') {
185
- if (len > def.maxLength) {
186
- return {
187
- success: false,
188
- error: new types_1.ValidationError(`${path} must not be longer than ${def.maxLength} characters`),
189
- };
190
- }
182
+ if (typeof def.minLength === 'number' || typeof def.maxLength === 'number') {
183
+ // If the JavaScript string length * 3 is below the maximum limit,
184
+ // its UTF8 length (which <= .length * 3) will also be below.
185
+ if (typeof def.minLength === 'number' && value.length * 3 < def.minLength) {
186
+ return {
187
+ success: false,
188
+ error: new types_1.ValidationError(`${path} must not be shorter than ${def.minLength} characters`),
189
+ };
191
190
  }
192
- if (typeof def.minLength === 'number') {
193
- if (len < def.minLength) {
194
- return {
195
- success: false,
196
- error: new types_1.ValidationError(`${path} must not be shorter than ${def.minLength} characters`),
197
- };
191
+ // If the JavaScript string length * 3 is within the maximum limit,
192
+ // its UTF8 length (which <= .length * 3) will also be within.
193
+ // When there's no minimal length, this lets us skip the UTF8 length check.
194
+ let canSkipUtf8LenChecks = false;
195
+ if (typeof def.minLength === 'undefined' &&
196
+ typeof def.maxLength === 'number' &&
197
+ value.length * 3 <= def.maxLength) {
198
+ canSkipUtf8LenChecks = true;
199
+ }
200
+ if (!canSkipUtf8LenChecks) {
201
+ const len = (0, common_web_1.utf8Len)(value);
202
+ if (typeof def.maxLength === 'number') {
203
+ if (len > def.maxLength) {
204
+ return {
205
+ success: false,
206
+ error: new types_1.ValidationError(`${path} must not be longer than ${def.maxLength} characters`),
207
+ };
208
+ }
209
+ }
210
+ if (typeof def.minLength === 'number') {
211
+ if (len < def.minLength) {
212
+ return {
213
+ success: false,
214
+ error: new types_1.ValidationError(`${path} must not be shorter than ${def.minLength} characters`),
215
+ };
216
+ }
198
217
  }
199
218
  }
200
219
  }
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/validators/primitives.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/validators/primitives.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/lexicon",
3
- "version": "0.4.3",
3
+ "version": "0.4.5",
4
4
  "license": "MIT",
5
5
  "description": "atproto Lexicon schema language library",
6
6
  "keywords": [
@@ -19,7 +19,7 @@
19
19
  "iso-datestring-validator": "^2.2.2",
20
20
  "multiformats": "^9.9.0",
21
21
  "zod": "^3.23.8",
22
- "@atproto/common-web": "^0.3.1",
22
+ "@atproto/common-web": "^0.3.2",
23
23
  "@atproto/syntax": "^0.3.1"
24
24
  },
25
25
  "devDependencies": {
@@ -198,27 +198,52 @@ export function string(
198
198
  }
199
199
 
200
200
  // maxLength and minLength
201
- if (typeof def.maxLength === 'number' || typeof def.minLength === 'number') {
202
- const len = utf8Len(value)
201
+ if (typeof def.minLength === 'number' || typeof def.maxLength === 'number') {
202
+ // If the JavaScript string length * 3 is below the maximum limit,
203
+ // its UTF8 length (which <= .length * 3) will also be below.
204
+ if (typeof def.minLength === 'number' && value.length * 3 < def.minLength) {
205
+ return {
206
+ success: false,
207
+ error: new ValidationError(
208
+ `${path} must not be shorter than ${def.minLength} characters`,
209
+ ),
210
+ }
211
+ }
203
212
 
204
- if (typeof def.maxLength === 'number') {
205
- if (len > def.maxLength) {
206
- return {
207
- success: false,
208
- error: new ValidationError(
209
- `${path} must not be longer than ${def.maxLength} characters`,
210
- ),
213
+ // If the JavaScript string length * 3 is within the maximum limit,
214
+ // its UTF8 length (which <= .length * 3) will also be within.
215
+ // When there's no minimal length, this lets us skip the UTF8 length check.
216
+ let canSkipUtf8LenChecks = false
217
+ if (
218
+ typeof def.minLength === 'undefined' &&
219
+ typeof def.maxLength === 'number' &&
220
+ value.length * 3 <= def.maxLength
221
+ ) {
222
+ canSkipUtf8LenChecks = true
223
+ }
224
+
225
+ if (!canSkipUtf8LenChecks) {
226
+ const len = utf8Len(value)
227
+
228
+ if (typeof def.maxLength === 'number') {
229
+ if (len > def.maxLength) {
230
+ return {
231
+ success: false,
232
+ error: new ValidationError(
233
+ `${path} must not be longer than ${def.maxLength} characters`,
234
+ ),
235
+ }
211
236
  }
212
237
  }
213
- }
214
238
 
215
- if (typeof def.minLength === 'number') {
216
- if (len < def.minLength) {
217
- return {
218
- success: false,
219
- error: new ValidationError(
220
- `${path} must not be shorter than ${def.minLength} characters`,
221
- ),
239
+ if (typeof def.minLength === 'number') {
240
+ if (len < def.minLength) {
241
+ return {
242
+ success: false,
243
+ error: new ValidationError(
244
+ `${path} must not be shorter than ${def.minLength} characters`,
245
+ ),
246
+ }
222
247
  }
223
248
  }
224
249
  }
@@ -313,6 +313,24 @@ const lexicons: LexiconDoc[] = [
313
313
  },
314
314
  },
315
315
  },
316
+ {
317
+ lexicon: 1,
318
+ id: 'com.example.stringLengthNoMinLength',
319
+ defs: {
320
+ main: {
321
+ type: 'record',
322
+ record: {
323
+ type: 'object',
324
+ properties: {
325
+ string: {
326
+ type: 'string',
327
+ maxLength: 4,
328
+ },
329
+ },
330
+ },
331
+ },
332
+ },
333
+ },
316
334
  {
317
335
  lexicon: 1,
318
336
  id: 'com.example.stringLengthGrapheme',
@@ -567,26 +567,207 @@ describe('Record validation', () => {
567
567
  })
568
568
 
569
569
  it('Applies string length constraint', () => {
570
+ // Shorter than two UTF8 characters
571
+ expect(() =>
572
+ lex.assertValidRecord('com.example.stringLength', {
573
+ $type: 'com.example.stringLength',
574
+ string: '',
575
+ }),
576
+ ).toThrow('Record/string must not be shorter than 2 characters')
577
+ expect(() =>
578
+ lex.assertValidRecord('com.example.stringLength', {
579
+ $type: 'com.example.stringLength',
580
+ string: 'a',
581
+ }),
582
+ ).toThrow('Record/string must not be shorter than 2 characters')
583
+
584
+ // Two to four UTF8 characters
585
+ lex.assertValidRecord('com.example.stringLength', {
586
+ $type: 'com.example.stringLength',
587
+ string: 'ab',
588
+ })
589
+ lex.assertValidRecord('com.example.stringLength', {
590
+ $type: 'com.example.stringLength',
591
+ string: '\u0301', // Combining acute accent (2 bytes)
592
+ })
593
+ lex.assertValidRecord('com.example.stringLength', {
594
+ $type: 'com.example.stringLength',
595
+ string: 'a\u0301', // 'a' + combining acute accent (1 + 2 bytes = 3 bytes)
596
+ })
597
+ lex.assertValidRecord('com.example.stringLength', {
598
+ $type: 'com.example.stringLength',
599
+ string: 'aΓ©', // 'a' (1 byte) + 'Γ©' (2 bytes) = 3 bytes
600
+ })
601
+ lex.assertValidRecord('com.example.stringLength', {
602
+ $type: 'com.example.stringLength',
603
+ string: 'abc',
604
+ })
570
605
  lex.assertValidRecord('com.example.stringLength', {
571
606
  $type: 'com.example.stringLength',
572
- string: '123',
607
+ string: 'δΈ€', // CJK character (3 bytes)
573
608
  })
609
+ lex.assertValidRecord('com.example.stringLength', {
610
+ $type: 'com.example.stringLength',
611
+ string: '\uD83D', // Unpaired high surrogate (3 bytes)
612
+ })
613
+ lex.assertValidRecord('com.example.stringLength', {
614
+ $type: 'com.example.stringLength',
615
+ string: 'abcd',
616
+ })
617
+ lex.assertValidRecord('com.example.stringLength', {
618
+ $type: 'com.example.stringLength',
619
+ string: 'éé', // 'é' + 'é' (2 + 2 bytes = 4 bytes)
620
+ })
621
+ lex.assertValidRecord('com.example.stringLength', {
622
+ $type: 'com.example.stringLength',
623
+ string: 'aaΓ©', // 1 + 1 + 2 = 4 bytes
624
+ })
625
+ lex.assertValidRecord('com.example.stringLength', {
626
+ $type: 'com.example.stringLength',
627
+ string: 'πŸ‘‹', // 4 bytes
628
+ })
629
+
574
630
  expect(() =>
575
631
  lex.assertValidRecord('com.example.stringLength', {
576
632
  $type: 'com.example.stringLength',
577
- string: '1',
633
+ string: 'abcde',
578
634
  }),
579
- ).toThrow('Record/string must not be shorter than 2 characters')
635
+ ).toThrow('Record/string must not be longer than 4 characters')
580
636
  expect(() =>
581
637
  lex.assertValidRecord('com.example.stringLength', {
582
638
  $type: 'com.example.stringLength',
583
- string: '12345',
639
+ string: 'a\u0301\u0301', // 1 + (2 * 2) = 5 bytes
584
640
  }),
585
641
  ).toThrow('Record/string must not be longer than 4 characters')
586
642
  expect(() =>
587
643
  lex.assertValidRecord('com.example.stringLength', {
588
644
  $type: 'com.example.stringLength',
589
- string: 'πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘§',
645
+ string: '\uD83D\uD83D', // Two unpaired high surrogates (3 * 2 = 6 bytes)
646
+ }),
647
+ ).toThrow('Record/string must not be longer than 4 characters')
648
+ expect(() =>
649
+ lex.assertValidRecord('com.example.stringLength', {
650
+ $type: 'com.example.stringLength',
651
+ string: 'ééé', // 2 + 2 + 2 bytes = 6 bytes
652
+ }),
653
+ ).toThrow('Record/string must not be longer than 4 characters')
654
+ expect(() =>
655
+ lex.assertValidRecord('com.example.stringLength', {
656
+ $type: 'com.example.stringLength',
657
+ string: 'πŸ‘‹a', // 4 + 1 bytes = 5 bytes
658
+ }),
659
+ ).toThrow('Record/string must not be longer than 4 characters')
660
+ expect(() =>
661
+ lex.assertValidRecord('com.example.stringLength', {
662
+ $type: 'com.example.stringLength',
663
+ string: 'πŸ‘¨πŸ‘¨', // 4 + 4 = 8 bytes
664
+ }),
665
+ ).toThrow('Record/string must not be longer than 4 characters')
666
+ expect(() =>
667
+ lex.assertValidRecord('com.example.stringLength', {
668
+ $type: 'com.example.stringLength',
669
+ string: 'πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘§', // 4 emojis Γ— 4 bytes + 3 ZWJs Γ— 3 bytes = 25 bytes
670
+ }),
671
+ ).toThrow('Record/string must not be longer than 4 characters')
672
+ })
673
+
674
+ it('Applies string length constraint (no minLength)', () => {
675
+ // Shorter than two UTF8 characters
676
+ lex.assertValidRecord('com.example.stringLengthNoMinLength', {
677
+ $type: 'com.example.stringLengthNoMinLength',
678
+ string: '',
679
+ })
680
+ lex.assertValidRecord('com.example.stringLengthNoMinLength', {
681
+ $type: 'com.example.stringLengthNoMinLength',
682
+ string: 'a',
683
+ })
684
+
685
+ // Two to four UTF8 characters
686
+ lex.assertValidRecord('com.example.stringLengthNoMinLength', {
687
+ $type: 'com.example.stringLengthNoMinLength',
688
+ string: 'ab',
689
+ })
690
+ lex.assertValidRecord('com.example.stringLengthNoMinLength', {
691
+ $type: 'com.example.stringLengthNoMinLength',
692
+ string: '\u0301', // Combining acute accent (2 bytes)
693
+ })
694
+ lex.assertValidRecord('com.example.stringLengthNoMinLength', {
695
+ $type: 'com.example.stringLengthNoMinLength',
696
+ string: 'a\u0301', // 'a' + combining acute accent (1 + 2 bytes = 3 bytes)
697
+ })
698
+ lex.assertValidRecord('com.example.stringLengthNoMinLength', {
699
+ $type: 'com.example.stringLengthNoMinLength',
700
+ string: 'aΓ©', // 'a' (1 byte) + 'Γ©' (2 bytes) = 3 bytes
701
+ })
702
+ lex.assertValidRecord('com.example.stringLengthNoMinLength', {
703
+ $type: 'com.example.stringLengthNoMinLength',
704
+ string: 'abc',
705
+ })
706
+ lex.assertValidRecord('com.example.stringLengthNoMinLength', {
707
+ $type: 'com.example.stringLengthNoMinLength',
708
+ string: 'δΈ€', // CJK character (3 bytes)
709
+ })
710
+ lex.assertValidRecord('com.example.stringLengthNoMinLength', {
711
+ $type: 'com.example.stringLengthNoMinLength',
712
+ string: '\uD83D', // Unpaired high surrogate (3 bytes)
713
+ })
714
+ lex.assertValidRecord('com.example.stringLengthNoMinLength', {
715
+ $type: 'com.example.stringLengthNoMinLength',
716
+ string: 'abcd',
717
+ })
718
+ lex.assertValidRecord('com.example.stringLengthNoMinLength', {
719
+ $type: 'com.example.stringLengthNoMinLength',
720
+ string: 'éé', // 'é' + 'é' (2 + 2 bytes = 4 bytes)
721
+ })
722
+ lex.assertValidRecord('com.example.stringLengthNoMinLength', {
723
+ $type: 'com.example.stringLengthNoMinLength',
724
+ string: 'aaΓ©', // 1 + 1 + 2 = 4 bytes
725
+ })
726
+ lex.assertValidRecord('com.example.stringLengthNoMinLength', {
727
+ $type: 'com.example.stringLengthNoMinLength',
728
+ string: 'πŸ‘‹', // 4 bytes
729
+ })
730
+
731
+ expect(() =>
732
+ lex.assertValidRecord('com.example.stringLengthNoMinLength', {
733
+ $type: 'com.example.stringLengthNoMinLength',
734
+ string: 'abcde',
735
+ }),
736
+ ).toThrow('Record/string must not be longer than 4 characters')
737
+ expect(() =>
738
+ lex.assertValidRecord('com.example.stringLengthNoMinLength', {
739
+ $type: 'com.example.stringLengthNoMinLength',
740
+ string: 'a\u0301\u0301', // 1 + (2 * 2) = 5 bytes
741
+ }),
742
+ ).toThrow('Record/string must not be longer than 4 characters')
743
+ expect(() =>
744
+ lex.assertValidRecord('com.example.stringLengthNoMinLength', {
745
+ $type: 'com.example.stringLengthNoMinLength',
746
+ string: '\uD83D\uD83D', // Two unpaired high surrogates (3 * 2 = 6 bytes)
747
+ }),
748
+ ).toThrow('Record/string must not be longer than 4 characters')
749
+ expect(() =>
750
+ lex.assertValidRecord('com.example.stringLengthNoMinLength', {
751
+ $type: 'com.example.stringLengthNoMinLength',
752
+ string: 'ééé', // 2 + 2 + 2 bytes = 6 bytes
753
+ }),
754
+ ).toThrow('Record/string must not be longer than 4 characters')
755
+ expect(() =>
756
+ lex.assertValidRecord('com.example.stringLengthNoMinLength', {
757
+ $type: 'com.example.stringLengthNoMinLength',
758
+ string: 'πŸ‘‹a', // 4 + 1 bytes = 5 bytes
759
+ }),
760
+ ).toThrow('Record/string must not be longer than 4 characters')
761
+ expect(() =>
762
+ lex.assertValidRecord('com.example.stringLengthNoMinLength', {
763
+ $type: 'com.example.stringLengthNoMinLength',
764
+ string: 'πŸ‘¨πŸ‘¨', // 4 + 4 = 8 bytes
765
+ }),
766
+ ).toThrow('Record/string must not be longer than 4 characters')
767
+ expect(() =>
768
+ lex.assertValidRecord('com.example.stringLengthNoMinLength', {
769
+ $type: 'com.example.stringLengthNoMinLength',
770
+ string: 'πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘§', // 4 emojis Γ— 4 bytes + 3 ZWJs Γ— 3 bytes = 25 bytes
590
771
  }),
591
772
  ).toThrow('Record/string must not be longer than 4 characters')
592
773
  })