Skip to content

Commit

Permalink
Merge branch 'release/v0.16.2'
Browse files Browse the repository at this point in the history
  • Loading branch information
holtwick committed Jan 6, 2024
2 parents 5fecf46 + 6132b90 commit 7c45f57
Show file tree
Hide file tree
Showing 8 changed files with 268 additions and 100 deletions.
3 changes: 1 addition & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "zeed",
"type": "module",
"version": "0.16.1",
"version": "0.16.2",
"description": "🌱 Simple foundation library",
"author": {
"name": "Dirk Holtwick",
Expand Down Expand Up @@ -31,7 +31,6 @@
"utils",
"zeed"
],
"sideEffects": false,
"exports": {
".": {
"types": "./dist/index.all.d.ts",
Expand Down
2 changes: 2 additions & 0 deletions src/common/bin/index.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,8 @@ Uint8Array [

expect(enc(1)).toMatchInlineSnapshot('"01"')
expect(enc(127)).toMatchInlineSnapshot('"7f"')
expect(enc(128)).toMatchInlineSnapshot(`"8001"`)
expect(enc(255)).toMatchInlineSnapshot('"ff01"')
expect(enc(256)).toMatchInlineSnapshot('"8002"')
expect(enc(691529286)).toMatchInlineSnapshot('"c6ccdfc902"')
})
Expand Down
80 changes: 80 additions & 0 deletions src/common/bin/lib0/binary.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
describe.skip('binary.spec', () => {
it('should generate', async () => {
for (let i = 0; i < 32; i++) {
let s = `export const BIT${i + 1}= 0b`
for (let j = 0; j < 32; j++)
s += (31 - j) === i ? '1' : '0'
// console.log(s)q
}
})
})

/*
export const BIT1 = 1
export const BIT2 = 2
export const BIT3 = 4
export const BIT4 = 8
export const BIT5 = 16
export const BIT6 = 32
export const BIT7 = 64
export const BIT8 = 128
export const BIT9 = 256
export const BIT10 = 512
export const BIT11 = 1024
export const BIT12 = 2048
export const BIT13 = 4096
export const BIT14 = 8192
export const BIT15 = 16384
export const BIT16 = 32768
export const BIT17 = 65536
export const BIT18 = 1 << 17
export const BIT19 = 1 << 18
export const BIT20 = 1 << 19
export const BIT21 = 1 << 20
export const BIT22 = 1 << 21
export const BIT23 = 1 << 22
export const BIT24 = 1 << 23
export const BIT25 = 1 << 24
export const BIT26 = 1 << 25
export const BIT27 = 1 << 26
export const BIT28 = 1 << 27
export const BIT29 = 1 << 28
export const BIT30 = 1 << 29
export const BIT31 = 1 << 30
export const BIT32 = 1 << 31
export const BITS0 = 0
export const BITS1 = 1
export const BITS2 = 3
export const BITS3 = 7
export const BITS4 = 15
export const BITS5 = 31
export const BITS6 = 63
export const BITS7 = 127
export const BITS8 = 255
export const BITS9 = 511
export const BITS10 = 1023
export const BITS11 = 2047
export const BITS12 = 4095
export const BITS13 = 8191
export const BITS14 = 16383
export const BITS15 = 32767
export const BITS16 = 65535
export const BITS17 = BIT18 - 1
export const BITS18 = BIT19 - 1
export const BITS19 = BIT20 - 1
export const BITS20 = BIT21 - 1
export const BITS21 = BIT22 - 1
export const BITS22 = BIT23 - 1
export const BITS23 = BIT24 - 1
export const BITS24 = BIT25 - 1
export const BITS25 = BIT26 - 1
export const BITS26 = BIT27 - 1
export const BITS27 = BIT28 - 1
export const BITS28 = BIT29 - 1
export const BITS29 = BIT30 - 1
export const BITS30 = BIT31 - 1
export const BITS31 = 0x7FFFFFFF
export const BITS32 = 0xFFFFFFFF
*/
214 changes: 149 additions & 65 deletions src/common/bin/lib0/binary.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,72 +7,156 @@
/**
* n-th bit activated.
*/
export const BIT1 = 1
export const BIT2 = 2
export const BIT3 = 4
export const BIT4 = 8
export const BIT5 = 16
export const BIT6 = 32
export const BIT7 = 64
export const BIT8 = 128
export const BIT9 = 256
export const BIT10 = 512
export const BIT11 = 1024
export const BIT12 = 2048
export const BIT13 = 4096
export const BIT14 = 8192
export const BIT15 = 16384
export const BIT16 = 32768
export const BIT17 = 65536
export const BIT18 = 1 << 17
export const BIT19 = 1 << 18
export const BIT20 = 1 << 19
export const BIT21 = 1 << 20
export const BIT22 = 1 << 21
export const BIT23 = 1 << 22
export const BIT24 = 1 << 23
export const BIT25 = 1 << 24
export const BIT26 = 1 << 25
export const BIT27 = 1 << 26
export const BIT28 = 1 << 27
export const BIT29 = 1 << 28
export const BIT30 = 1 << 29
export const BIT31 = 1 << 30
export const BIT32 = 1 << 31
export const BIT1 = 0b00000000000000000000000000000001
export const BIT2 = 0b00000000000000000000000000000010
export const BIT3 = 0b00000000000000000000000000000100
export const BIT4 = 0b00000000000000000000000000001000
export const BIT5 = 0b00000000000000000000000000010000
export const BIT6 = 0b00000000000000000000000000100000
export const BIT7 = 0b00000000000000000000000001000000
export const BIT8 = 0b00000000000000000000000010000000
export const BIT9 = 0b00000000000000000000000100000000
export const BIT10 = 0b00000000000000000000001000000000
export const BIT11 = 0b00000000000000000000010000000000
export const BIT12 = 0b00000000000000000000100000000000
export const BIT13 = 0b00000000000000000001000000000000
export const BIT14 = 0b00000000000000000010000000000000
export const BIT15 = 0b00000000000000000100000000000000
export const BIT16 = 0b00000000000000001000000000000000
export const BIT17 = 0b00000000000000010000000000000000
export const BIT18 = 0b00000000000000100000000000000000
export const BIT19 = 0b00000000000001000000000000000000
export const BIT20 = 0b00000000000010000000000000000000
export const BIT21 = 0b00000000000100000000000000000000
export const BIT22 = 0b00000000001000000000000000000000
export const BIT23 = 0b00000000010000000000000000000000
export const BIT24 = 0b00000000100000000000000000000000
export const BIT25 = 0b00000001000000000000000000000000
export const BIT26 = 0b00000010000000000000000000000000
export const BIT27 = 0b00000100000000000000000000000000
export const BIT28 = 0b00001000000000000000000000000000
export const BIT29 = 0b00010000000000000000000000000000
export const BIT30 = 0b00100000000000000000000000000000
export const BIT31 = 0b01000000000000000000000000000000
export const BIT32 = 0b10000000000000000000000000000000

// for (let i = 0; i < 32; i++) {
// let s = `export const BIT${i}= 0b`
// for (let j = 0; j < 32; j++)
// s += (31 - j) === i ? '1' : '0'
// console.log(s)
// }

/**
* First n bits activated.
*/
export const BITS0 = 0
export const BITS1 = 1
export const BITS2 = 3
export const BITS3 = 7
export const BITS4 = 15
export const BITS5 = 31
export const BITS6 = 63
export const BITS7 = 127
export const BITS8 = 255
export const BITS9 = 511
export const BITS10 = 1023
export const BITS11 = 2047
export const BITS12 = 4095
export const BITS13 = 8191
export const BITS14 = 16383
export const BITS15 = 32767
export const BITS16 = 65535
export const BITS17 = BIT18 - 1
export const BITS18 = BIT19 - 1
export const BITS19 = BIT20 - 1
export const BITS20 = BIT21 - 1
export const BITS21 = BIT22 - 1
export const BITS22 = BIT23 - 1
export const BITS23 = BIT24 - 1
export const BITS24 = BIT25 - 1
export const BITS25 = BIT26 - 1
export const BITS26 = BIT27 - 1
export const BITS27 = BIT28 - 1
export const BITS28 = BIT29 - 1
export const BITS29 = BIT30 - 1
export const BITS30 = BIT31 - 1
export const BITS31 = 0x7FFFFFFF
export const BITS32 = 0xFFFFFFFF

export const BITS0 = 0b00000000000000000000000000000000
export const BITS1 = 0b00000000000000000000000000000001
export const BITS2 = 0b00000000000000000000000000000011
export const BITS3 = 0b00000000000000000000000000000111
export const BITS4 = 0b00000000000000000000000000001111
export const BITS5 = 0b00000000000000000000000000011111
export const BITS6 = 0b00000000000000000000000000111111
export const BITS7 = 0b00000000000000000000000001111111
export const BITS8 = 0b00000000000000000000000011111111
export const BITS9 = 0b00000000000000000000000111111111
export const BITS10 = 0b00000000000000000000001111111111
export const BITS11 = 0b00000000000000000000011111111111
export const BITS12 = 0b00000000000000000000111111111111
export const BITS13 = 0b00000000000000000001111111111111
export const BITS14 = 0b00000000000000000011111111111111
export const BITS15 = 0b00000000000000000111111111111111
export const BITS16 = 0b00000000000000001111111111111111
export const BITS17 = 0b00000000000000011111111111111111
export const BITS18 = 0b00000000000000111111111111111111
export const BITS19 = 0b00000000000001111111111111111111
export const BITS20 = 0b00000000000011111111111111111111
export const BITS21 = 0b00000000000111111111111111111111
export const BITS22 = 0b00000000001111111111111111111111
export const BITS23 = 0b00000000011111111111111111111111
export const BITS24 = 0b00000000111111111111111111111111
export const BITS25 = 0b00000001111111111111111111111111
export const BITS26 = 0b00000011111111111111111111111111
export const BITS27 = 0b00000111111111111111111111111111
export const BITS28 = 0b00001111111111111111111111111111
export const BITS29 = 0b00011111111111111111111111111111
export const BITS30 = 0b00111111111111111111111111111111
export const BITS31 = 0b01111111111111111111111111111111
export const BITS32 = 0b11111111111111111111111111111111

// for (let i = 0; i < 32; i++) {
// let s = `export const BITS${i}= 0b`
// for (let j = 0; j < 32; j++)
// s += (32 - j) > i ? '0' : '1'
// console.log(s)
// }

/*
var BIT0 = 1;
var BIT1 = 2;
var BIT2 = 4;
var BIT3 = 8;
var BIT4 = 16;
var BIT5 = 32;
var BIT6 = 64;
var BIT7 = 128;
var BIT8 = 256;
var BIT9 = 512;
var BIT10 = 1024;
var BIT11 = 2048;
var BIT12 = 4096;
var BIT13 = 8192;
var BIT14 = 16384;
var BIT15 = 32768;
var BIT16 = 65536;
var BIT17 = 131072;
var BIT18 = 262144;
var BIT19 = 524288;
var BIT20 = 1048576;
var BIT21 = 2097152;
var BIT22 = 4194304;
var BIT23 = 8388608;
var BIT24 = 16777216;
var BIT25 = 33554432;
var BIT26 = 67108864;
var BIT27 = 134217728;
var BIT28 = 268435456;
var BIT29 = 536870912;
var BIT30 = 1073741824;
var BIT31 = 2147483648;
var BITS0 = 0;
var BITS1 = 1;
var BITS2 = 3;
var BITS3 = 7;
var BITS4 = 15;
var BITS5 = 31;
var BITS6 = 63;
var BITS7 = 127;
var BITS8 = 255;
var BITS9 = 511;
var BITS10 = 1023;
var BITS11 = 2047;
var BITS12 = 4095;
var BITS13 = 8191;
var BITS14 = 16383;
var BITS15 = 32767;
var BITS16 = 65535;
var BITS17 = 131071;
var BITS18 = 262143;
var BITS19 = 524287;
var BITS20 = 1048575;
var BITS21 = 2097151;
var BITS22 = 4194303;
var BITS23 = 8388607;
var BITS24 = 16777215;
var BITS25 = 33554431;
var BITS26 = 67108863;
var BITS27 = 134217727;
var BITS28 = 268435455;
var BITS29 = 536870911;
var BITS30 = 1073741823;
var BITS31 = 2147483647;
var BITS32 = 4294967295;
*/
4 changes: 2 additions & 2 deletions src/common/bin/lib0/string.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
* Utility module to work with strings.
*/

export const fromCharCode = String.fromCharCode
export const fromCodePoint = String.fromCodePoint
// export const fromCharCode = String.fromCharCode
// export const fromCodePoint = String.fromCodePoint

function toLowerCase(s: string): string {
return s.toLowerCase()
Expand Down
32 changes: 18 additions & 14 deletions src/common/data/string-deburr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -211,29 +211,17 @@ const deburredLetters = {
* @param {string} letter The matched letter to deburr.
* @returns {string} Returns the deburred letter.
*/
const deburrLetter = basePropertyOf(deburredLetters)
let deburrLetter: any

/** Used to match Latin Unicode letters (excluding mathematical operators). */
const reLatin = /[\xC0-\xD6\xD8-\xF6\xF8-\xFF\u0100-\u017F]/g

/** Used to compose unicode character classes. */
const rsComboMarksRange = '\\u0300-\\u036f'
const reComboHalfMarksRange = '\\ufe20-\\ufe2f'
const rsComboSymbolsRange = '\\u20d0-\\u20ff'
const rsComboMarksExtendedRange = '\\u1ab0-\\u1aff'
const rsComboMarksSupplementRange = '\\u1dc0-\\u1dff'
const rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange + rsComboMarksExtendedRange + rsComboMarksSupplementRange

/** Used to compose unicode capture groups. */
const rsCombo = `[${rsComboRange}]`

/**
* Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and
* [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).
*/

// eslint-disable-next-line no-misleading-character-class
const reComboMark = RegExp(rsCombo, 'g')
let reComboMark: RegExp | undefined

/**
* Deburrs `string` by converting
Expand All @@ -250,5 +238,21 @@ const reComboMark = RegExp(rsCombo, 'g')
* // => 'deja vu'
*/
export function deburr(string: string): string {
if (reComboMark == null) {
/** Used to compose unicode character classes. */
const rsComboMarksRange = '\\u0300-\\u036f'
const reComboHalfMarksRange = '\\ufe20-\\ufe2f'
const rsComboSymbolsRange = '\\u20d0-\\u20ff'
const rsComboMarksExtendedRange = '\\u1ab0-\\u1aff'
const rsComboMarksSupplementRange = '\\u1dc0-\\u1dff'
const rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange + rsComboMarksExtendedRange + rsComboMarksSupplementRange

/** Used to compose unicode capture groups. */
const rsCombo = `[${rsComboRange}]`
// eslint-disable-next-line no-misleading-character-class
reComboMark = RegExp(rsCombo, 'g')
}
if (deburrLetter == null)
deburrLetter = basePropertyOf(deburredLetters)
return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '')
}
Loading

0 comments on commit 7c45f57

Please sign in to comment.