functionalscript 0.0.329 → 0.0.332

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 +2 -0
  2. package/commonjs/build/index.js +8 -8
  3. package/commonjs/build/test.js +6 -6
  4. package/commonjs/module/function/index.js +1 -1
  5. package/commonjs/module/index.js +1 -1
  6. package/commonjs/package/dependencies/index.js +2 -2
  7. package/commonjs/package/dependencies/test.js +1 -1
  8. package/commonjs/package/index.js +2 -2
  9. package/commonjs/package/test.js +2 -2
  10. package/commonjs/path/index.js +3 -6
  11. package/commonjs/path/test.js +7 -7
  12. package/io/commonjs/index.js +3 -3
  13. package/io/commonjs/test.js +2 -2
  14. package/io/result/index.js +1 -1
  15. package/json/index.js +4 -4
  16. package/json/test.js +3 -3
  17. package/json/tokenizer/index.js +46 -52
  18. package/json/tokenizer/test.js +8 -8
  19. package/package.json +1 -1
  20. package/sha2/index.js +1 -1
  21. package/sha2/test.js +4 -4
  22. package/test.js +15 -15
  23. package/types/array/index.js +2 -2
  24. package/types/array/test.js +3 -3
  25. package/types/btree/find/index.js +4 -4
  26. package/types/btree/find/test.js +7 -7
  27. package/types/btree/index.js +2 -2
  28. package/types/btree/remove/index.js +6 -6
  29. package/types/btree/remove/test.js +6 -6
  30. package/types/btree/set/index.js +4 -4
  31. package/types/btree/set/test.js +5 -5
  32. package/types/btree/test.js +10 -10
  33. package/types/function/compare/index.js +5 -3
  34. package/types/function/compare/test.js +1 -1
  35. package/types/list/index.js +3 -3
  36. package/types/list/test.js +4 -4
  37. package/types/map/index.js +8 -8
  38. package/types/map/test.js +2 -2
  39. package/types/object/index.js +2 -2
  40. package/types/object/test.js +1 -1
  41. package/types/stringSet/index.js +7 -7
  42. package/types/stringSet/test.js +1 -1
package/README.md CHANGED
@@ -11,6 +11,8 @@ FunctionalScript is a purely functional programming language and a strict subset
11
11
 
12
12
  Create a new FunctionalScript repository on GitHub [here](https://github.com/functionalscript/template/generate).
13
13
 
14
+ Learn more about [FunctionalScript](https://medium.com/@sergeyshandar/purely-functional-programming-in-javascript-91114b1b2dff).
15
+
14
16
  ## Design Principles
15
17
 
16
18
  In FunctionalScript:
@@ -1,11 +1,11 @@
1
- const package_ = require('../package')
2
- const module_ = require('../module')
3
- const function_ = require('../module/function')
4
- const { todo } = require('../../dev')
5
- const map = require('../../types/map')
6
- const object = require('../../types/object')
7
- const path = require('../path')
8
- const stringSet = require('../../types/stringSet')
1
+ const package_ = require('../package/index.js')
2
+ const module_ = require('../module/index.js')
3
+ const function_ = require('../module/function/index.js')
4
+ const { todo } = require('../../dev/index.js')
5
+ const map = require('../../types/map/index.js')
6
+ const object = require('../../types/object/index.js')
7
+ const path = require('../path/index.js')
8
+ const stringSet = require('../../types/stringSet/index.js')
9
9
 
10
10
  /**
11
11
  * @template M
@@ -1,9 +1,9 @@
1
- const _ = require('.')
2
- const map = require('../../types/map')
3
- const module_ = require('../module')
4
- const function_ = require('../module/function')
5
- const result = require('../../types/result')
6
- const package_ = require('../package')
1
+ const _ = require('./index.js')
2
+ const map = require('../../types/map/index.js')
3
+ const module_ = require('../module/index.js')
4
+ const function_ = require('../module/function/index.js')
5
+ const result = require('../../types/result/index.js')
6
+ const package_ = require('../package/index.js')
7
7
 
8
8
  /** @type {{ readonly [k in string]?: result.Result<function_.Function_, unknown> }} */
9
9
  const compileMap = {
@@ -2,7 +2,7 @@
2
2
  * An IO interface for creating and running module functions.
3
3
  */
4
4
 
5
- const result = require('../../../types/result')
5
+ const result = require('../../../types/result/index.js')
6
6
 
7
7
  /** @typedef {<M>(require: Require<M>) => (prior: M) => Result<M>} Function_ */
8
8
 
@@ -1,4 +1,4 @@
1
- const object = require('../../types/object')
1
+ const object = require('../../types/object/index.js')
2
2
 
3
3
  /**
4
4
  * @template M
@@ -1,5 +1,5 @@
1
- const json = require('../../../json')
2
- const seq = require('../../../types/list')
1
+ const json = require('../../../json/index.js')
2
+ const seq = require('../../../types/list/index.js')
3
3
 
4
4
  /** @typedef {readonly[string, string]} DependencyJson */
5
5
 
@@ -1,4 +1,4 @@
1
- const _ = require('.')
1
+ const _ = require('./index.js')
2
2
 
3
3
  {
4
4
  if (!_.isDependenciesJson(undefined)) { throw 'error' }
@@ -1,5 +1,5 @@
1
- const json = require('../../json')
2
- const dependencies = require('./dependencies')
1
+ const json = require('../../json/index.js')
2
+ const dependencies = require('./dependencies/index.js')
3
3
 
4
4
  /**
5
5
  * @typedef {{
@@ -1,6 +1,6 @@
1
- const _ = require('.')
1
+ const _ = require('./index.js')
2
2
 
3
- require('./dependencies/test')
3
+ require('./dependencies/test.js')
4
4
 
5
5
  {
6
6
  if (_.isPackageJson(null)) { throw 'error' }
@@ -1,9 +1,6 @@
1
- const list = require("../../types/list")
2
- const option = require("../../types/option")
3
- const { compose } = require("../../types/function")
4
- const { todo } = require("../../dev")
5
- const package_ = require("../package")
6
- const module_ = require("../module")
1
+ const list = require("../../types/list/index.js")
2
+ const package_ = require("../package/index.js")
3
+ const module_ = require("../module/index.js")
7
4
 
8
5
  /** @typedef {readonly string[]} Items */
9
6
 
@@ -1,10 +1,10 @@
1
- const _ = require('.')
2
- const { todo } = require('../../dev')
3
- const json = require('../../json')
4
- const { identity } = require('../../types/function')
5
- const object = require('../../types/object')
6
- const { at } = require('../../types/object')
7
- const package_ = require('../package')
1
+ const _ = require('./index.js')
2
+ const { todo } = require('../../dev/index.js')
3
+ const json = require('../../json/index.js')
4
+ const { identity } = require('../../types/function/index.js')
5
+ const object = require('../../types/object/index.js')
6
+ const { at } = require('../../types/object/index.js')
7
+ const package_ = require('../package/index.js')
8
8
 
9
9
  /** @type {(g: json.Unknown|undefined) => string} */
10
10
  const stringify = g => {
@@ -1,6 +1,6 @@
1
- const { tryCatch } = require('../result')
2
- const { unwrap } = require('../../types/result')
3
- const moduleFunction = require('../../commonjs/module/function')
1
+ const { tryCatch } = require('../result/index.js')
2
+ const { unwrap } = require('../../types/result/index.js')
3
+ const moduleFunction = require('../../commonjs/module/function/index.js')
4
4
 
5
5
  /** @type {(f: Function) => moduleFunction.Function_} */
6
6
  const build = f => immutableRequire => mutableData => {
@@ -1,5 +1,5 @@
1
- const _ = require('.')
2
- const run = require('../../commonjs/module/function')
1
+ const _ = require('./index.js')
2
+ const run = require('../../commonjs/module/function/index.js')
3
3
 
4
4
  // ok:
5
5
  {
@@ -1,4 +1,4 @@
1
- const result = require('../../types/result')
1
+ const result = require('../../types/result/index.js')
2
2
 
3
3
  /** @type {<T>(f: () => T) => result.Result<T, unknown>} */
4
4
  const tryCatch = f => {
package/json/index.js CHANGED
@@ -1,7 +1,7 @@
1
- const seq = require('../types/list')
2
- const object = require('../types/object')
3
- const op = require('../types/function/operator')
4
- const { compose } = require('../types/function')
1
+ const seq = require('../types/list/index.js')
2
+ const object = require('../types/object/index.js')
3
+ const op = require('../types/function/operator/index.js')
4
+ const { compose } = require('../types/function/index.js')
5
5
 
6
6
  /**
7
7
  * @typedef {{
package/json/test.js CHANGED
@@ -1,6 +1,6 @@
1
- const json = require('.')
2
- const { sort } = require('../types/object')
3
- const { identity } = require('../types/function')
1
+ const json = require('./index.js')
2
+ const { sort } = require('../types/object/index.js')
3
+ const { identity } = require('../types/function/index.js')
4
4
 
5
5
  if (json.setProperty("Hello")([])({}) !== "Hello") { throw 'error' }
6
6
 
@@ -1,7 +1,5 @@
1
- const { todo } = require('../../dev')
2
- const operator = require('../../types/function/operator')
3
- const { concat } = require('../../types/list')
4
- const list = require('../../types/list')
1
+ const operator = require('../../types/function/operator/index.js')
2
+ const list = require('../../types/list/index.js')
5
3
 
6
4
  /**
7
5
  * @typedef {{
@@ -50,7 +48,7 @@ const newLine = 0x0a
50
48
  const carriageReturn = 0x0d
51
49
  const space = 0x20
52
50
 
53
- const backslach = 0x5c
51
+ const backslash = 0x5c
54
52
  const slash = 0x2f
55
53
  const backspace = 0x08
56
54
  const formfeed = 0x0c
@@ -116,21 +114,17 @@ const letterZ = 0x7a
116
114
 
117
115
  /** @typedef {{ readonly kind: 'eof'}} EofState */
118
116
 
119
- /** @typedef {number|undefined} JsonCharacter */
117
+ /** @typedef {number|undefined} CharCodeOrEof */
120
118
 
121
- /** @type {(old: string) => (input: JsonCharacter) => string} */
119
+ /** @type {(old: string) => (input: CharCodeOrEof) => string} */
122
120
  const appendChar = old => input => input === undefined ? old : operator.concat(charToString(input))(old)
123
121
 
124
- /** @type {(input: JsonCharacter) => string} */
122
+ /** @type {(input: CharCodeOrEof) => string} */
125
123
  const charToString = input => input === undefined ? '' : String.fromCharCode(input)
126
124
 
127
- /** @type {(state: InitialState) => (input: JsonCharacter) => readonly[list.List<JsonToken>, TokenizerState]} */
125
+ /** @type {(state: InitialState) => (input: number) => readonly[list.List<JsonToken>, TokenizerState]} */
128
126
  const initialStateOp = initialState => input =>
129
127
  {
130
- if (input === undefined)
131
- {
132
- return[undefined, {kind: 'eof'}]
133
- }
134
128
  if (input >= digit1 && input <= digit9)
135
129
  {
136
130
  return [undefined, { kind: 'number', value: charToString(input), numberKind: 'int'}]
@@ -158,21 +152,9 @@ const initialStateOp = initialState => input =>
158
152
  }
159
153
  }
160
154
 
161
- /** @type {(state: ParseNumberState) => (input: JsonCharacter) => readonly[list.List<JsonToken>, TokenizerState]} */
155
+ /** @type {(state: ParseNumberState) => (input: number) => readonly[list.List<JsonToken>, TokenizerState]} */
162
156
  const parseNumberStateOp = state => input =>
163
157
  {
164
- if (input === undefined)
165
- {
166
- switch (state.numberKind)
167
- {
168
- case '-':
169
- case '.':
170
- case 'e':
171
- case 'e+':
172
- case 'e-': return [[{kind: 'error', message: 'invalid number'}], {kind: 'invalidNumber', }]
173
- default: return [[{kind: 'number', value: state.value}], {kind: 'eof'}]
174
- }
175
- }
176
158
  if (input === decimalPoint)
177
159
  {
178
160
  switch (state.numberKind)
@@ -273,13 +255,9 @@ const isTerminalForNumber = char =>
273
255
  }
274
256
  }
275
257
 
276
- /** @type {(state: InvalidNumberState) => (input: JsonCharacter) => readonly[list.List<JsonToken>, TokenizerState]} */
258
+ /** @type {(state: InvalidNumberState) => (input: number) => readonly[list.List<JsonToken>, TokenizerState]} */
277
259
  const invalidNumberStateOp = state => input =>
278
260
  {
279
- if (input === undefined)
280
- {
281
- return [[{kind: 'error', message: 'invalid number'}], {kind: 'eof'}]
282
- }
283
261
  if (isTerminalForNumber(input))
284
262
  {
285
263
  const next = tokenizeOp({kind: 'initial'})(input)
@@ -288,25 +266,24 @@ const invalidNumberStateOp = state => input =>
288
266
  return [undefined, {kind: 'invalidNumber'}]
289
267
  }
290
268
 
291
- /** @type {(state: ParseStringState) => (input: JsonCharacter) => readonly[list.List<JsonToken>, TokenizerState]} */
269
+ /** @type {(state: ParseStringState) => (input: number) => readonly[list.List<JsonToken>, TokenizerState]} */
292
270
  const parseStringStateOp = state => input =>
293
271
  {
294
272
  switch(input)
295
273
  {
296
274
  case quotationMark: return[[{kind: 'string', value: state.value}], {kind: 'initial'}]
297
- case backslach: return [undefined, {kind:'escapeChar', value: state.value}]
298
- case undefined: return [[{kind: 'error', message: '" are missing'}], {kind: 'eof'}]
275
+ case backslash: return [undefined, {kind:'escapeChar', value: state.value}]
299
276
  default: return [undefined, {kind:'string', value: appendChar(state.value)(input)}]
300
277
  }
301
278
  }
302
279
 
303
- /** @type {(state: ParseEscapeCharState) => (input: JsonCharacter) => readonly[list.List<JsonToken>, TokenizerState]} */
280
+ /** @type {(state: ParseEscapeCharState) => (input: number) => readonly[list.List<JsonToken>, TokenizerState]} */
304
281
  const parseEscapeCharStateOp = state => input =>
305
282
  {
306
283
  switch(input)
307
284
  {
308
285
  case quotationMark:
309
- case backslach:
286
+ case backslash:
310
287
  case slash: return [undefined, {kind: 'string', value: appendChar(state.value)(input)}]
311
288
  case letterB: return [undefined, {kind: 'string', value: appendChar(state.value)(backspace)}]
312
289
  case letterF: return [undefined, {kind: 'string', value: appendChar(state.value)(formfeed)}]
@@ -314,7 +291,6 @@ const parseEscapeCharStateOp = state => input =>
314
291
  case letterR: return [undefined, {kind: 'string', value: appendChar(state.value)(carriageReturn)}]
315
292
  case letterT: return [undefined, {kind: 'string', value: appendChar(state.value)(horizontalTab)}]
316
293
  case letterU: return [undefined, {kind: 'unicodeChar', value: state.value, unicode: 0, hexIndex: 0}]
317
- case undefined: return [[{kind: 'error', message: '" are missing'}], {kind: 'eof'}]
318
294
  default: {
319
295
  const next = tokenizeOp({kind: 'string', value: state.value})(input)
320
296
  return [{first: {kind: 'error', message: 'unescaped character'}, tail: next[0]}, next[1]]
@@ -330,13 +306,9 @@ const hexDigitToNumber = hex =>
330
306
  if (hex >= letterA && hex <= letterF) { return hex - letterA + 10 }
331
307
  }
332
308
 
333
- /** @type {(state: ParseUnicodeCharState) => (input: JsonCharacter) => readonly[list.List<JsonToken>, TokenizerState]} */
309
+ /** @type {(state: ParseUnicodeCharState) => (input: number) => readonly[list.List<JsonToken>, TokenizerState]} */
334
310
  const parseUnicodeCharStateOp = state => input =>
335
311
  {
336
- if (input === undefined)
337
- {
338
- return [[{kind: 'error', message: '" are missing'}], {kind: 'eof'}]
339
- }
340
312
  const hexValue = hexDigitToNumber(input)
341
313
  if (hexValue === undefined)
342
314
  {
@@ -361,14 +333,9 @@ const stringToKeywordToken = s =>
361
333
  }
362
334
  }
363
335
 
364
- /** @type {(state: ParseKeywordState) => (input: JsonCharacter) => readonly[list.List<JsonToken>, TokenizerState]} */
336
+ /** @type {(state: ParseKeywordState) => (input: number) => readonly[list.List<JsonToken>, TokenizerState]} */
365
337
  const parseKeyWordStateOp = state => input =>
366
338
  {
367
- if (input === undefined)
368
- {
369
- const keyWordToken = stringToKeywordToken(state.value)
370
- return [[keyWordToken], {kind: 'eof'}]
371
- }
372
339
  if (input >= letterA && input <= letterZ)
373
340
  {
374
341
  return [undefined, {kind: 'keyword', value: appendChar(state.value)(input)}]
@@ -378,11 +345,11 @@ const parseKeyWordStateOp = state => input =>
378
345
  return [{first: keyWordToken, tail: next[0]}, next[1]]
379
346
  }
380
347
 
381
- /** @type {(state: EofState) => (input: JsonCharacter) => readonly[list.List<JsonToken>, TokenizerState]} */
348
+ /** @type {(state: EofState) => (input: number) => readonly[list.List<JsonToken>, TokenizerState]} */
382
349
  const eofStateOp = state => input => [[{kind: 'error', message: 'eof'}], state]
383
350
 
384
- /** @type {operator.StateScan<JsonCharacter, TokenizerState, list.List<JsonToken>>} */
385
- const tokenizeOp = state => {
351
+ /** @type {operator.StateScan<number, TokenizerState, list.List<JsonToken>>} */
352
+ const tokenizeCharCodeOp = state => {
386
353
  switch(state.kind)
387
354
  {
388
355
  case 'initial': return initialStateOp(state)
@@ -396,7 +363,34 @@ const tokenizeOp = state => {
396
363
  }
397
364
  }
398
365
 
399
- /** @type {(input: list.List<JsonCharacter>) => list.List<JsonToken>} */
366
+ /** @type {(state: TokenizerState) => readonly[list.List<JsonToken>, TokenizerState]} */
367
+ const tokenizeEofOp = state => {
368
+ switch(state.kind)
369
+ {
370
+ case 'initial': return[undefined, {kind: 'eof'}]
371
+ case 'keyword': return [[stringToKeywordToken(state.value)], {kind: 'eof'}]
372
+ case 'string':
373
+ case 'escapeChar':
374
+ case 'unicodeChar': return [[{kind: 'error', message: '" are missing'}], {kind: 'eof'}]
375
+ case 'invalidNumber': return [[{kind: 'error', message: 'invalid number'}], {kind: 'eof'}]
376
+ case 'number':
377
+ switch (state.numberKind)
378
+ {
379
+ case '-':
380
+ case '.':
381
+ case 'e':
382
+ case 'e+':
383
+ case 'e-': return [[{kind: 'error', message: 'invalid number'}], {kind: 'invalidNumber', }]
384
+ default: return [[{kind: 'number', value: state.value}], {kind: 'eof'}]
385
+ }
386
+ case 'eof': return [[{kind: 'error', message: 'eof'}], state]
387
+ }
388
+ }
389
+
390
+ /** @type {operator.StateScan<CharCodeOrEof, TokenizerState, list.List<JsonToken>>} */
391
+ const tokenizeOp = state => input => input === undefined ? tokenizeEofOp(state) : tokenizeCharCodeOp(state)(input)
392
+
393
+ /** @type {(input: list.List<CharCodeOrEof>) => list.List<JsonToken>} */
400
394
  const tokenize = input => list.flat(list.stateScan(tokenizeOp)({kind: 'initial'})(input))
401
395
 
402
396
  module.exports = {
@@ -1,19 +1,19 @@
1
- const tokenizer = require('.')
2
- const list = require('../../types/list')
3
- const json = require('..')
4
- const { sort } = require('../../types/object')
1
+ const tokenizer = require('./index.js')
2
+ const list = require('../../types/list/index.js')
3
+ const json = require('../index.js')
4
+ const { sort } = require('../../types/object/index.js')
5
5
 
6
- /** @type {(s: string) => list.List<tokenizer.JsonCharacter>} */
6
+ /** @type {(s: string) => list.List<tokenizer.CharCodeOrEof>} */
7
7
  const toCharacters = s =>
8
8
  {
9
- /** @type {list.List<tokenizer.JsonCharacter>} */
9
+ /** @type {list.List<tokenizer.CharCodeOrEof>} */
10
10
  const charCodes = list.toCharCodes(s)
11
11
  return list.concat(charCodes)([undefined])
12
- }
12
+ }
13
13
 
14
14
  /** @type {(s: string) => readonly tokenizer.JsonToken[]} */
15
15
  const tokenizeString = s =>
16
- {
16
+ {
17
17
  const characters = toCharacters(s)
18
18
  return list.toArray(tokenizer.tokenize(characters))
19
19
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "functionalscript",
3
- "version": "0.0.329",
3
+ "version": "0.0.332",
4
4
  "description": "FunctionalScript is a functional subset of JavaScript",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/sha2/index.js CHANGED
@@ -1,4 +1,4 @@
1
- const array = require('../types/array')
1
+ const array = require('../types/array/index.js')
2
2
 
3
3
  /**
4
4
  * @typedef {{
package/sha2/test.js CHANGED
@@ -1,7 +1,7 @@
1
- const _ = require('.')
2
- const json = require('../json')
3
- const { sort } = require('../types/object')
4
- const list = require('../types/list')
1
+ const _ = require('./index.js')
2
+ const json = require('../json/index.js')
3
+ const { sort } = require('../types/object/index.js')
4
+ const list = require('../types/list/index.js')
5
5
 
6
6
  /** @type {(a: number) => number} */
7
7
  const toU32 = x => (x + 0x1_0000_0000) % 0x1_0000_0000
package/test.js CHANGED
@@ -1,19 +1,19 @@
1
- const i = require('./')
1
+ const i = require('./index.js')
2
2
 
3
- require('./types/list/test')
4
- require('./types/array/test')
5
- require('./types/btree/test')
6
- require('./sha2/test')
7
- require('./json/test')
8
- require('./json/tokenizer/test')
9
- require('./types/object/test')
10
- require('./io/commonjs/test')
11
- require('./commonjs/package/dependencies/test')
12
- require('./commonjs/package/test')
13
- require('./commonjs/path/test')
14
- require('./types/function/compare/test')
15
- require('./types/stringSet/test')
16
- require('./commonjs/build/test')
3
+ require('./types/list/test.js')
4
+ require('./types/array/test.js')
5
+ require('./types/btree/test.js')
6
+ require('./sha2/test.js')
7
+ require('./json/test.js')
8
+ require('./json/tokenizer/test.js')
9
+ require('./types/object/test.js')
10
+ require('./io/commonjs/test.js')
11
+ require('./commonjs/package/dependencies/test.js')
12
+ require('./commonjs/package/test.js')
13
+ require('./commonjs/path/test.js')
14
+ require('./types/function/compare/test.js')
15
+ require('./types/stringSet/test.js')
16
+ require('./commonjs/build/test.js')
17
17
 
18
18
  /** @type {() => never} */
19
19
  const assert = () => { throw 'assert' }
@@ -1,5 +1,5 @@
1
- const option = require('../option')
2
- const seq = require('../list')
1
+ const option = require('../option/index.js')
2
+ const seq = require('../list/index.js')
3
3
 
4
4
  /**
5
5
  * @template T
@@ -1,6 +1,6 @@
1
- const _ = require('.')
2
- const json = require('../../json')
3
- const { sort } = require('../object')
1
+ const _ = require('./index.js')
2
+ const json = require('../../json/index.js')
3
+ const { sort } = require('../object/index.js')
4
4
 
5
5
  /** @type {(a: readonly json.Unknown[]) => string} */
6
6
  const stringify = a => json.stringify(sort)(a)
@@ -1,7 +1,7 @@
1
- const _ = require('..')
2
- const list = require('../../list')
3
- const cmp = require('../../function/compare')
4
- const array = require('../../array')
1
+ const _ = require('../index.js')
2
+ const list = require('../../list/index.js')
3
+ const cmp = require('../../function/compare/index.js')
4
+ const array = require('../../array/index.js')
5
5
 
6
6
  /**
7
7
  * @template T
@@ -1,10 +1,10 @@
1
- const _ = require('.')
2
- const list = require('../../list')
3
- const json = require('../../../json')
4
- const { sort } = require('../../object')
5
- const btree = require('..')
6
- const { stringCmp } = require('../../function/compare')
7
- const s = require('../set')
1
+ const _ = require('./index.js')
2
+ const list = require('../../list/index.js')
3
+ const json = require('../../../json/index.js')
4
+ const { sort } = require('../../object/index.js')
5
+ const btree = require('../index.js')
6
+ const { stringCmp } = require('../../function/compare/index.js')
7
+ const s = require('../set/index.js')
8
8
 
9
9
  const jsonStr = json.stringify(sort)
10
10
 
@@ -1,5 +1,5 @@
1
- const seq = require('../list')
2
- const option = require('../option')
1
+ const seq = require('../list/index.js')
2
+ const option = require('../option/index.js')
3
3
 
4
4
  /**
5
5
  * @template T
@@ -1,9 +1,9 @@
1
- const _ = require('..')
2
- const cmp = require('../../function/compare')
3
- const find = require('../find')
4
- const list = require('../../list')
5
- const array = require('../../array')
6
- const option = require('../../option')
1
+ const _ = require('../index.js')
2
+ const cmp = require('../../function/compare/index.js')
3
+ const find = require('../find/index.js')
4
+ const list = require('../../list/index.js')
5
+ const array = require('../../array/index.js')
6
+ const option = require('../../option/index.js')
7
7
 
8
8
  /**
9
9
  * @template T
@@ -1,9 +1,9 @@
1
- const _ = require('.')
2
- const btree = require('..')
3
- const s = require('../set')
4
- const { stringCmp } = require('../../function/compare')
5
- const json = require('../../../json')
6
- const { sort } = require('../../object')
1
+ const _ = require('./index.js')
2
+ const btree = require('../index.js')
3
+ const s = require('../set/index.js')
4
+ const { stringCmp } = require('../../function/compare/index.js')
5
+ const json = require('../../../json/index.js')
6
+ const { sort } = require('../../object/index.js')
7
7
 
8
8
  /** @type {(node: btree.Node<string>) => (value: string) => btree.Node<string>} */
9
9
  const set = node => value => s.set(stringCmp(value))(value)(node)
@@ -1,7 +1,7 @@
1
- const _ = require('..')
2
- const find = require('../find')
3
- const cmp = require('../../function/compare')
4
- const list = require('../../list')
1
+ const _ = require('../index.js')
2
+ const find = require('../find/index.js')
3
+ const cmp = require('../../function/compare/index.js')
4
+ const list = require('../../list/index.js')
5
5
 
6
6
  /**
7
7
  * @template T
@@ -1,8 +1,8 @@
1
- const _ = require('.')
2
- const btree = require('..')
3
- const { stringCmp } = require('../../function/compare')
4
- const json = require('../../../json')
5
- const { sort } = require('../../object')
1
+ const _ = require('./index.js')
2
+ const btree = require('../index.js')
3
+ const { stringCmp } = require('../../function/compare/index.js')
4
+ const json = require('../../../json/index.js')
5
+ const { sort } = require('../../object/index.js')
6
6
 
7
7
  /** @type {(node: btree.Node<string>) => (value: string) => btree.Node<string>} */
8
8
  const set = node => value => _.set(stringCmp(value))(value)(node)
@@ -1,15 +1,15 @@
1
- const btree = require('.')
1
+ const btree = require('./index.js')
2
2
  const { values } = btree
3
- const json = require('../../json')
4
- const { sort } = require('../object')
5
- const { stringCmp } = require('../function/compare')
6
- const list = require('../list')
7
- const s = require('./set')
8
- const f = require('./find')
3
+ const json = require('../../json/index.js')
4
+ const { sort } = require('../object/index.js')
5
+ const { stringCmp } = require('../function/compare/index.js')
6
+ const list = require('../list/index.js')
7
+ const s = require('./set/index.js')
8
+ const f = require('./find/index.js')
9
9
 
10
- require('./find/test')
11
- require('./set/test')
12
- require('./remove/test')
10
+ require('./find/test.js')
11
+ require('./set/test.js')
12
+ require('./remove/test.js')
13
13
 
14
14
  const jsonStr = json.stringify(sort)
15
15
 
@@ -1,9 +1,11 @@
1
- /** @typedef {import('../../array').Index3} Index3 */
2
- /** @typedef {import('../../array').Index5} Index5 */
1
+ const array = require('../../array/index.js')
2
+
3
+ /** @typedef {array.Index3} Index3 */
4
+ /** @typedef {array.Index5} Index5 */
3
5
 
4
6
  /**
5
7
  * @template T
6
- * @typedef {import('../../array').Array2<T>} Array2
8
+ * @typedef {array.Array2<T>} Array2
7
9
  */
8
10
 
9
11
  /** @typedef {-1|0|1} Sign */
@@ -1,4 +1,4 @@
1
- const _ = require('.')
1
+ const _ = require('./index.js')
2
2
 
3
3
  {
4
4
  const result = _.numberCmp(4)(5)
@@ -1,6 +1,6 @@
1
- const { compose, identity } = require('../function')
2
- const operator = require('../function/operator')
3
- const { logicalNot, strictEqual, stateScanToScan, reduceToScan, foldToScan } = require('../function/operator')
1
+ const { compose, identity } = require('../function/index.js')
2
+ const operator = require('../function/operator/index.js')
3
+ const { logicalNot, strictEqual, stateScanToScan, reduceToScan, foldToScan } = require('../function/operator/index.js')
4
4
 
5
5
  /**
6
6
  * @template T
@@ -1,7 +1,7 @@
1
- const _ = require('.')
2
- const json = require('../../json')
3
- const { sort } = require('../object')
4
- const { addition, strictEqual, foldToScan } = require('../function/operator')
1
+ const _ = require('./index.js')
2
+ const json = require('../../json/index.js')
3
+ const { sort } = require('../object/index.js')
4
+ const { addition, strictEqual, foldToScan } = require('../function/operator/index.js')
5
5
 
6
6
  /** @type {(sequence: _.List<json.Unknown>) => string} */
7
7
  const stringify = sequence => json.stringify(sort)(_.toArray(sequence))
@@ -1,11 +1,11 @@
1
- const btree = require('../btree')
2
- const { values } = require("../btree")
3
- const find = require('../btree/find')
4
- const s = require('../btree/set')
5
- const compare = require('../function/compare')
6
- const { stringCmp } = require('../function/compare')
7
- const list = require('../list')
8
- const btRemove = require('../btree/remove')
1
+ const btree = require('../btree/index.js')
2
+ const { values } = require("../btree/index.js")
3
+ const find = require('../btree/find/index.js')
4
+ const s = require('../btree/set/index.js')
5
+ const compare = require('../function/compare/index.js')
6
+ const { stringCmp } = require('../function/compare/index.js')
7
+ const list = require('../list/index.js')
8
+ const btRemove = require('../btree/remove/index.js')
9
9
 
10
10
  /** @typedef {compare.Sign} Sign */
11
11
 
package/types/map/test.js CHANGED
@@ -1,5 +1,5 @@
1
- const { at, set, empty, entries, remove } = require('.')
2
- const seq = require('../list')
1
+ const { at, set, empty, entries, remove } = require('./index.js')
2
+ const seq = require('../list/index.js')
3
3
 
4
4
  {
5
5
  let m = set('a')(1)(undefined)
@@ -1,5 +1,5 @@
1
- const list = require('../list')
2
- const map = require('../map')
1
+ const list = require('../list/index.js')
2
+ const map = require('../map/index.js')
3
3
 
4
4
  /**
5
5
  * @template T
@@ -1,4 +1,4 @@
1
- const _ = require('.')
1
+ const _ = require('./index.js')
2
2
 
3
3
  {
4
4
  const a = {}
@@ -1,10 +1,10 @@
1
- const btree = require('../btree')
2
- const find = require('../btree/find')
3
- const btSet = require('../btree/set')
4
- const btRemove = require('../btree/remove')
5
- const { stringCmp } = require("../function/compare")
6
- const list = require('../list')
7
- const { compose } = require('../function')
1
+ const btree = require('../btree/index.js')
2
+ const find = require('../btree/find/index.js')
3
+ const btSet = require('../btree/set/index.js')
4
+ const btRemove = require('../btree/remove/index.js')
5
+ const { stringCmp } = require("../function/compare/index.js")
6
+ const list = require('../list/index.js')
7
+ const { compose } = require('../function/index.js')
8
8
 
9
9
  /** @typedef {btree.Tree<string>} StringSet */
10
10
 
@@ -1,4 +1,4 @@
1
- const _ = require('.')
1
+ const _ = require('./index.js')
2
2
 
3
3
  {
4
4
  const r = _.set('hello')(undefined)