functionalscript 0.0.344 → 0.0.349

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 (58) hide show
  1. package/.github/workflows/node.js.yml +2 -0
  2. package/.github/workflows/npm-publish.yml +1 -1
  3. package/commonjs/build/{index.js → main.f.js} +7 -7
  4. package/commonjs/build/{test.js → test.f.js} +6 -6
  5. package/commonjs/main.f.js +20 -0
  6. package/commonjs/module/function/{index.js → main.f.js} +1 -1
  7. package/commonjs/module/{index.js → main.f.js} +3 -1
  8. package/commonjs/package/dependencies/{index.js → main.f.js} +3 -3
  9. package/commonjs/package/dependencies/{test.js → test.f.js} +1 -1
  10. package/commonjs/package/{index.js → main.f.js} +4 -2
  11. package/commonjs/package/{test.js → test.f.js} +2 -2
  12. package/commonjs/path/{index.js → main.f.js} +3 -3
  13. package/commonjs/path/{test.js → test.f.js} +7 -7
  14. package/dev/{index.js → main.f.js} +0 -0
  15. package/html/{index.js → main.f.js} +3 -4
  16. package/html/{test.js → test.f.js} +1 -1
  17. package/io/commonjs/{index.js → main.js} +3 -3
  18. package/io/commonjs/test.js +2 -2
  19. package/io/nodejs/version/{index.js → main.js} +0 -0
  20. package/io/result/{index.js → main.js} +1 -1
  21. package/json/{index.js → main.f.js} +31 -29
  22. package/json/{test.js → test.f.js} +3 -3
  23. package/json/tokenizer/{index.js → main.f.js} +3 -3
  24. package/json/tokenizer/{test.js → test.f.js} +4 -4
  25. package/main.f.js +14 -0
  26. package/package.json +6 -5
  27. package/sha2/{index.js → main.f.js} +1 -1
  28. package/sha2/{test.js → test.f.js} +4 -4
  29. package/{test.js → test.f.js} +16 -16
  30. package/types/array/{index.js → main.f.js} +1 -2
  31. package/types/array/{test.js → test.f.js} +3 -3
  32. package/types/btree/find/{index.js → main.f.js} +4 -4
  33. package/types/btree/find/{test.js → test.f.js} +7 -7
  34. package/types/btree/main.f.js +40 -0
  35. package/types/btree/remove/{index.js → main.f.js} +6 -6
  36. package/types/btree/remove/{test.js → test.f.js} +6 -6
  37. package/types/btree/set/{index.js → main.f.js} +4 -4
  38. package/types/btree/set/{test.js → test.f.js} +5 -5
  39. package/types/btree/{test.js → test.f.js} +11 -11
  40. package/types/btree/{index.js → types/main.f.js} +1 -33
  41. package/types/function/compare/{index.js → main.f.js} +1 -1
  42. package/types/function/compare/{test.js → test.f.js} +1 -1
  43. package/types/function/{index.js → main.f.js} +4 -0
  44. package/types/function/operator/{index.js → main.f.js} +0 -0
  45. package/types/list/{index.js → main.f.js} +3 -3
  46. package/types/list/{test.js → test.f.js} +4 -4
  47. package/types/main.f.js +20 -0
  48. package/types/map/{index.js → main.f.js} +10 -9
  49. package/types/map/{test.js → test.f.js} +3 -3
  50. package/types/object/{index.js → main.f.js} +2 -2
  51. package/types/object/{test.js → test.f.js} +1 -1
  52. package/types/option/{index.js → main.f.js} +0 -0
  53. package/types/range/{index.js → main.f.js} +0 -0
  54. package/types/range/{test.js → test.f.js} +1 -1
  55. package/types/result/{index.js → main.f.js} +0 -0
  56. package/types/{stringSet/index.js → stringset/main.f.js} +9 -10
  57. package/types/{stringSet/test.js → stringset/test.f.js} +1 -1
  58. package/commonjs/index.js +0 -11
@@ -25,3 +25,5 @@ jobs:
25
25
  node-version: ${{ matrix.node-version }}
26
26
  - run: npm install
27
27
  - run: npm test
28
+ - run: npm run version
29
+ - run: npm pack
@@ -30,7 +30,7 @@ jobs:
30
30
  node-version: 14
31
31
  registry-url: https://registry.npmjs.org/
32
32
  - run: npm ci
33
- - run: node ./io/nodejs/version
33
+ - run: npm run version
34
34
  - run: npm publish
35
35
  env:
36
36
  NODE_AUTH_TOKEN: ${{secrets.npm_token}}
@@ -1,10 +1,10 @@
1
- const package_ = require('../package/index.js')
2
- const module_ = require('../module/index.js')
3
- const function_ = require('../module/function/index.js')
4
- const map = require('../../types/map/index.js')
5
- const object = require('../../types/object/index.js')
6
- const path = require('../path/index.js')
7
- const stringSet = require('../../types/stringSet/index.js')
1
+ const package_ = require('../package/main.f.js')
2
+ const module_ = require('../module/main.f.js')
3
+ const function_ = require('../module/function/main.f.js')
4
+ const map = require('../../types/map/main.f.js')
5
+ const object = require('../../types/object/main.f.js')
6
+ const path = require('../path/main.f.js')
7
+ const stringSet = require('../../types/stringset/main.f.js')
8
8
 
9
9
  /**
10
10
  * @template M
@@ -1,9 +1,9 @@
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')
1
+ const _ = require('./main.f.js')
2
+ const map = require('../../types/map/main.f.js')
3
+ const module_ = require('../module/main.f.js')
4
+ const function_ = require('../module/function/main.f.js')
5
+ const result = require('../../types/result/main.f.js')
6
+ const package_ = require('../package/main.f.js')
7
7
 
8
8
  /** @type {{ readonly [k in string]?: result.Result<function_.Function_, unknown> }} */
9
9
  const compileMap = {
@@ -0,0 +1,20 @@
1
+ /** @typedef {(packageName: string) => PackageMap|Package|undefined} PackageMap */
2
+
3
+ /**
4
+ * @typedef {readonly[
5
+ * string,
6
+ * PackageMap,
7
+ * (fileName: string) => string|undefined
8
+ * ]} Package
9
+ */
10
+
11
+ module.exports = {
12
+ /** @readonly */
13
+ build: require('./build/main.f.js'),
14
+ /** @readonly */
15
+ module: require('./module/main.f.js'),
16
+ /** @readonly */
17
+ package: require('./package/main.f.js'),
18
+ /** @readonly */
19
+ path: require('./path/main.f.js'),
20
+ }
@@ -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/index.js')
5
+ const result = require('../../../types/result/main.f.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/index.js')
1
+ const object = require('../../types/object/main.f.js')
2
2
 
3
3
  /**
4
4
  * @template M
@@ -52,6 +52,8 @@ const dir = id => {
52
52
  const idToString = id => `${id.package}/${id.path.join('/')}`
53
53
 
54
54
  module.exports = {
55
+ /** @readonly */
56
+ function: require('./function/main.f.js'),
55
57
  /** @readonly */
56
58
  dir,
57
59
  /** @readonly */
@@ -1,5 +1,5 @@
1
- const json = require('../../../json/index.js')
2
- const seq = require('../../../types/list/index.js')
1
+ const json = require('../../../json/main.f.js')
2
+ const list = require('../../../types/list/main.f.js')
3
3
 
4
4
  /** @typedef {readonly[string, string]} DependencyJson */
5
5
 
@@ -14,7 +14,7 @@ const isDependencyJson = ([, v]) => typeof v === 'string'
14
14
  const isDependenciesJson = j => {
15
15
  if (j === undefined) { return true }
16
16
  if (!json.isObject(j)) { return false }
17
- return seq.every(seq.map(isDependencyJson)(Object.entries(j)))
17
+ return list.every(list.map(isDependencyJson)(Object.entries(j)))
18
18
  }
19
19
 
20
20
  module.exports = {
@@ -1,4 +1,4 @@
1
- const _ = require('./index.js')
1
+ const _ = require('./main.f.js')
2
2
 
3
3
  {
4
4
  if (!_.isDependenciesJson(undefined)) { throw 'error' }
@@ -1,5 +1,5 @@
1
- const json = require('../../json/index.js')
2
- const dependencies = require('./dependencies/index.js')
1
+ const json = require('../../json/main.f.js')
2
+ const dependencies = require('./dependencies/main.f.js')
3
3
 
4
4
  /**
5
5
  * @typedef {{
@@ -31,6 +31,8 @@ const isPackageJson = j => {
31
31
  */
32
32
 
33
33
  module.exports = {
34
+ /** @readonly */
35
+ dependencies,
34
36
  /** @readonly */
35
37
  isPackageJson,
36
38
  }
@@ -1,6 +1,6 @@
1
- const _ = require('./index.js')
1
+ const _ = require('./main.f.js')
2
2
 
3
- require('./dependencies/test.js')
3
+ require('./dependencies/test.f.js')
4
4
 
5
5
  {
6
6
  if (_.isPackageJson(null)) { throw 'error' }
@@ -1,6 +1,6 @@
1
- const list = require("../../types/list/index.js")
2
- const package_ = require("../package/index.js")
3
- const module_ = require("../module/index.js")
1
+ const list = require("../../types/list/main.f.js")
2
+ const package_ = require("../package/main.f.js")
3
+ const module_ = require("../module/main.f.js")
4
4
 
5
5
  /** @typedef {readonly string[]} Items */
6
6
 
@@ -1,10 +1,10 @@
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')
1
+ const _ = require('./main.f.js')
2
+ const { todo } = require('../../dev/main.f.js')
3
+ const json = require('../../json/main.f.js')
4
+ const { identity } = require('../../types/function/main.f.js')
5
+ const object = require('../../types/object/main.f.js')
6
+ const { at } = require('../../types/object/main.f.js')
7
+ const package_ = require('../package/main.f.js')
8
8
 
9
9
  /** @type {(g: json.Unknown|undefined) => string} */
10
10
  const stringify = g => {
File without changes
@@ -1,7 +1,6 @@
1
- const list = require('../types/list/index.js')
2
- const object = require('../types/object/index.js')
3
- const operator = require('../types/function/operator/index.js')
4
- const { compose } = require('../types/function/index.js')
1
+ const list = require('../types/list/main.f.js')
2
+ const object = require('../types/object/main.f.js')
3
+ const { operator, compose } = require('../types/function/main.f.js')
5
4
 
6
5
  /**
7
6
  * @typedef {|
@@ -1,4 +1,4 @@
1
- const _ = require('./index.js')
1
+ const _ = require('./main.f.js')
2
2
 
3
3
  {
4
4
  const r = _.htmlToString(['html', []])
@@ -1,6 +1,6 @@
1
- const { tryCatch } = require('../result/index.js')
2
- const { unwrap } = require('../../types/result/index.js')
3
- const moduleFunction = require('../../commonjs/module/function/index.js')
1
+ const { tryCatch } = require('../result/main.js')
2
+ const { unwrap } = require('../../types/result/main.f.js')
3
+ const moduleFunction = require('../../commonjs/module/function/main.f.js')
4
4
 
5
5
  /** @type {(f: Function) => moduleFunction.Function_} */
6
6
  const build = f => immutableRequire => mutableData => {
@@ -1,5 +1,5 @@
1
- const _ = require('./index.js')
2
- const run = require('../../commonjs/module/function/index.js')
1
+ const _ = require('./main.js')
2
+ const run = require('../../commonjs/module/function/main.f.js')
3
3
 
4
4
  // ok:
5
5
  {
File without changes
@@ -1,4 +1,4 @@
1
- const result = require('../../types/result/index.js')
1
+ const result = require('../../types/result/main.f.js')
2
2
 
3
3
  /** @type {<T>(f: () => T) => result.Result<T, unknown>} */
4
4
  const tryCatch = f => {
@@ -1,7 +1,7 @@
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')
1
+ const list = require('../types/list/main.f.js')
2
+ const object = require('../types/object/main.f.js')
3
+ const operator = require('../types/function/operator/main.f.js')
4
+ const { compose } = require('../types/function/main.f.js')
5
5
 
6
6
  /**
7
7
  * @typedef {{
@@ -13,11 +13,11 @@ const { compose } = require('../types/function/index.js')
13
13
 
14
14
  /** @typedef {Object|boolean|string|number|null|Array} Unknown */
15
15
 
16
- /** @type {(value: Unknown) => (path: seq.List<string>) => (src: Unknown|undefined) => Unknown} */
16
+ /** @type {(value: Unknown) => (path: list.List<string>) => (src: Unknown|undefined) => Unknown} */
17
17
  const setProperty = value => {
18
- /** @type {(path: seq.List<string>) => (src: Unknown|undefined) => Unknown} */
18
+ /** @type {(path: list.List<string>) => (src: Unknown|undefined) => Unknown} */
19
19
  const f = path => src => {
20
- const result = seq.next(path)
20
+ const result = list.next(path)
21
21
  if (result === undefined) { return value }
22
22
  const srcObject = (src === undefined || src === null || typeof src !== 'object' || src instanceof Array) ? {} : src
23
23
  const { first, tail } = result
@@ -26,10 +26,10 @@ const setProperty = value => {
26
26
  return f
27
27
  }
28
28
 
29
- /** @type {(_: string) => seq.List<string>} */
29
+ /** @type {(_: string) => list.List<string>} */
30
30
  const stringSerialize = input => [JSON.stringify(input)]
31
31
 
32
- /** @type {(_: number) => seq.List<string>} */
32
+ /** @type {(_: number) => list.List<string>} */
33
33
  const numberSerialize = input => [JSON.stringify(input)]
34
34
 
35
35
  const nullSerialize = ['null']
@@ -38,46 +38,46 @@ const trueSerialize = ['true']
38
38
 
39
39
  const falseSerialize = ['false']
40
40
 
41
- /** @type {(_: boolean) => seq.List<string>} */
41
+ /** @type {(_: boolean) => list.List<string>} */
42
42
  const boolSerialize = value => value ? trueSerialize : falseSerialize
43
43
 
44
44
  const colon = [':']
45
45
  const comma = [',']
46
46
 
47
- /** @type {op.Fold<seq.List<string>>} */
48
- const joinOp = b => prior => seq.flat([prior, comma, b])
47
+ /** @type {operator.Fold<list.List<string>>} */
48
+ const joinOp = b => prior => list.flat([prior, comma, b])
49
49
 
50
- /** @type {(input: seq.List<seq.List<string>>) => seq.List<string>} */
51
- const join = seq.fold(joinOp)([])
50
+ /** @type {(input: list.List<list.List<string>>) => list.List<string>} */
51
+ const join = list.fold(joinOp)([])
52
52
 
53
- /** @type {(open: string) => (close: string) => (input: seq.List<seq.List<string>>) => seq.List<string>} */
54
- const list = open => close => {
53
+ /** @type {(open: string) => (close: string) => (input: list.List<list.List<string>>) => list.List<string>} */
54
+ const wrap = open => close => {
55
55
  const seqOpen = [open]
56
56
  const seqClose = [close]
57
- return input => seq.flat([seqOpen, join(input), seqClose])
57
+ return input => list.flat([seqOpen, join(input), seqClose])
58
58
  }
59
59
 
60
- const objectList = list('{')('}')
60
+ const objectWrap = wrap('{')('}')
61
61
 
62
- const arrayList = list('[')(']')
62
+ const arrayWrap = wrap('[')(']')
63
63
 
64
64
  /** @typedef {object.Entry<Unknown>} Entry*/
65
65
 
66
- /** @typedef {(seq.List<Entry>)} Entries */
66
+ /** @typedef {(list.List<Entry>)} Entries */
67
67
 
68
68
  /** @typedef {(entries: Entries) => Entries} MapEntries */
69
69
 
70
- /** @type {(mapEntries: MapEntries) => (value: Unknown) => seq.List<string>} */
70
+ /** @type {(mapEntries: MapEntries) => (value: Unknown) => list.List<string>} */
71
71
  const serialize = sort => {
72
- /** @type {(kv: readonly[string, Unknown]) => seq.List<string>} */
73
- const propertySerialize = ([k, v]) => seq.flat([
72
+ /** @type {(kv: readonly[string, Unknown]) => list.List<string>} */
73
+ const propertySerialize = ([k, v]) => list.flat([
74
74
  stringSerialize(k),
75
75
  colon,
76
76
  f(v)
77
77
  ])
78
- /** @type {(object: Object) => seq.List<string>} */
79
- const objectSerialize = input => objectList(seq.map(propertySerialize)(sort(Object.entries(input))))
80
- /** @type {(value: Unknown) => seq.List<string>} */
78
+ /** @type {(object: Object) => list.List<string>} */
79
+ const objectSerialize = input => objectWrap(list.map(propertySerialize)(sort(Object.entries(input))))
80
+ /** @type {(value: Unknown) => list.List<string>} */
81
81
  const f = value => {
82
82
  switch (typeof value) {
83
83
  case 'boolean': { return boolSerialize(value) }
@@ -90,8 +90,8 @@ const serialize = sort => {
90
90
  }
91
91
  }
92
92
  }
93
- /** @type {(input: Array) => seq.List<string>} */
94
- const arraySerialize = compose(seq.map(f))(arrayList)
93
+ /** @type {(input: Array) => list.List<string>} */
94
+ const arraySerialize = compose(list.map(f))(arrayWrap)
95
95
  return f
96
96
  }
97
97
 
@@ -101,7 +101,7 @@ const serialize = sort => {
101
101
  *
102
102
  * @type {(mapEntries: MapEntries) => (value: Unknown) => string}
103
103
  */
104
- const stringify = sort => compose(serialize(sort))(seq.join(''))
104
+ const stringify = sort => compose(serialize(sort))(list.join(''))
105
105
 
106
106
  /** @type {(value: string) => Unknown} */
107
107
  const parse = JSON.parse
@@ -110,6 +110,8 @@ const parse = JSON.parse
110
110
  const isObject = value => typeof value === 'object' && value !== null && !(value instanceof Array)
111
111
 
112
112
  module.exports = {
113
+ /** @readonly */
114
+ tokenizer: require('./tokenizer/main.f.js'),
113
115
  /** @readonly */
114
116
  setProperty,
115
117
  /** @readonly */
@@ -1,6 +1,6 @@
1
- const json = require('./index.js')
2
- const { sort } = require('../types/object/index.js')
3
- const { identity } = require('../types/function/index.js')
1
+ const json = require('./main.f.js')
2
+ const { sort } = require('../types/object/main.f.js')
3
+ const { identity } = require('../types/function/main.f.js')
4
4
 
5
5
  if (json.setProperty("Hello")([])({}) !== "Hello") { throw 'error' }
6
6
 
@@ -1,6 +1,6 @@
1
- const operator = require('../../types/function/operator/index.js')
2
- const list = require('../../types/list/index.js')
3
- const range = require('../../types/range/index.js')
1
+ const operator = require('../../types/function/operator/main.f.js')
2
+ const list = require('../../types/list/main.f.js')
3
+ const range = require('../../types/range/main.f.js')
4
4
 
5
5
  /**
6
6
  * @typedef {{
@@ -1,7 +1,7 @@
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')
1
+ const tokenizer = require('./main.f.js')
2
+ const list = require('../../types/list/main.f.js')
3
+ const json = require('../main.f.js')
4
+ const { sort } = require('../../types/object/main.f.js')
5
5
 
6
6
  /** @type {(s: string) => readonly tokenizer.JsonToken[]} */
7
7
  const tokenizeString = s => list.toArray(tokenizer.tokenize(list.toCharCodes(s)))
package/main.f.js ADDED
@@ -0,0 +1,14 @@
1
+ module.exports = {
2
+ /** @readonly */
3
+ commonjs: require('./commonjs/main.f.js'),
4
+ /** @readonly */
5
+ dev: require('./dev/main.f.js'),
6
+ /** @readonly */
7
+ html: require('./html/main.f.js'),
8
+ /** @readonly */
9
+ json: require('./json/main.f.js'),
10
+ /** @readonly */
11
+ sha2: require('./sha2/main.f.js'),
12
+ /** @readonly */
13
+ types: require('./types/main.f.js'),
14
+ }
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "functionalscript",
3
- "version": "0.0.344",
3
+ "version": "0.0.349",
4
4
  "description": "FunctionalScript is a functional subset of JavaScript",
5
- "main": "index.js",
5
+ "main": "main.f.js",
6
6
  "scripts": {
7
7
  "tsc": "tsc",
8
8
  "test": "tsc && npm run test-only",
9
- "test-only": "node --trace-uncaught ./test"
9
+ "version": "node ./io/nodejs/version/main.js",
10
+ "test-only": "node --trace-uncaught ./test.f.js"
10
11
  },
11
12
  "repository": {
12
13
  "type": "git",
@@ -28,7 +29,7 @@
28
29
  },
29
30
  "homepage": "https://github.com/functionalscript/functionalscript#readme",
30
31
  "devDependencies": {
31
- "@types/node": "^17.0.42",
32
- "typescript": "^4.7.3"
32
+ "@types/node": "^18.0.0",
33
+ "typescript": "^4.7.4"
33
34
  }
34
35
  }
@@ -1,4 +1,4 @@
1
- const array = require('../types/array/index.js')
1
+ const array = require('../types/array/main.f.js')
2
2
 
3
3
  /**
4
4
  * @typedef {{
@@ -1,7 +1,7 @@
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')
1
+ const _ = require('./main.f.js')
2
+ const json = require('../json/main.f.js')
3
+ const { sort } = require('../types/object/main.f.js')
4
+ const list = require('../types/list/main.f.js')
5
5
 
6
6
  /** @type {(a: number) => number} */
7
7
  const toU32 = x => (x + 0x1_0000_0000) % 0x1_0000_0000
@@ -1,21 +1,21 @@
1
- // const i = require('./index.js')
1
+ const i = require('./main.f.js')
2
2
 
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')
3
+ require('./types/list/test.f.js')
4
+ require('./types/array/test.f.js')
5
+ require('./types/btree/test.f.js')
6
+ require('./sha2/test.f.js')
7
+ require('./json/test.f.js')
8
+ require('./json/tokenizer/test.f.js')
9
+ require('./types/object/test.f.js')
10
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
- require('./types/range/test.js')
18
- require('./html/test.js')
11
+ require('./commonjs/package/dependencies/test.f.js')
12
+ require('./commonjs/package/test.f.js')
13
+ require('./commonjs/path/test.f.js')
14
+ require('./types/function/compare/test.f.js')
15
+ require('./types/stringset/test.f.js')
16
+ require('./commonjs/build/test.f.js')
17
+ require('./types/range/test.f.js')
18
+ require('./html/test.f.js')
19
19
 
20
20
  /** @type {() => never} */
21
21
  const assert = () => { throw 'assert' }
@@ -1,5 +1,4 @@
1
- const option = require('../option/index.js')
2
- const seq = require('../list/index.js')
1
+ const option = require('../option/main.f.js')
3
2
 
4
3
  /**
5
4
  * @template T
@@ -1,6 +1,6 @@
1
- const _ = require('./index.js')
2
- const json = require('../../json/index.js')
3
- const { sort } = require('../object/index.js')
1
+ const _ = require('./main.f.js')
2
+ const json = require('../../json/main.f.js')
3
+ const { sort } = require('../object/main.f.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('../index.js')
2
- const list = require('../../list/index.js')
3
- const cmp = require('../../function/compare/index.js')
4
- const array = require('../../array/index.js')
1
+ const _ = require('../types/main.f.js')
2
+ const list = require('../../list/main.f.js')
3
+ const cmp = require('../../function/compare/main.f.js')
4
+ const array = require('../../array/main.f.js')
5
5
 
6
6
  /**
7
7
  * @template T
@@ -1,10 +1,10 @@
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')
1
+ const _ = require('./main.f.js')
2
+ const list = require('../../list/main.f.js')
3
+ const json = require('../../../json/main.f.js')
4
+ const { sort } = require('../../object/main.f.js')
5
+ const btree = require('../types/main.f.js')
6
+ const { stringCmp } = require('../../function/compare/main.f.js')
7
+ const s = require('../set/main.f.js')
8
8
 
9
9
  const jsonStr = json.stringify(sort)
10
10
 
@@ -0,0 +1,40 @@
1
+ const list = require('../list/main.f.js')
2
+ const option = require('../option/main.f.js')
3
+ const _ = require('./types/main.f.js')
4
+
5
+ /** @type {<T>(node: _.Node<T>) => list.Thunk<T>} */
6
+ const nodeValues = node => () => {
7
+ switch (node.length) {
8
+ case 1: case 2: { return node }
9
+ case 3: {
10
+ return list.flat([
11
+ nodeValues(node[0]),
12
+ [node[1]],
13
+ nodeValues(node[2])
14
+ ])
15
+ }
16
+ default: {
17
+ return list.flat([
18
+ nodeValues(node[0]),
19
+ [node[1]],
20
+ nodeValues(node[2]),
21
+ [node[3]],
22
+ nodeValues(node[4])
23
+ ])
24
+ }
25
+ }
26
+ }
27
+
28
+ /** @type {<T>(tree: _.Tree<T>) => list.List<T>} */
29
+ const values = option.map(nodeValues)
30
+
31
+ module.exports = {
32
+ /** @readonly */
33
+ find: require('./find/main.f.js'),
34
+ /** @readonly */
35
+ remove: require('./remove/main.f.js'),
36
+ /** @readonly */
37
+ set: require('./set/main.f.js'),
38
+ /** @readonly */
39
+ values,
40
+ }
@@ -1,9 +1,9 @@
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')
1
+ const _ = require('../types/main.f.js')
2
+ const cmp = require('../../function/compare/main.f.js')
3
+ const find = require('../find/main.f.js')
4
+ const list = require('../../list/main.f.js')
5
+ const array = require('../../array/main.f.js')
6
+ const option = require('../../option/main.f.js')
7
7
 
8
8
  /**
9
9
  * @template T
@@ -1,9 +1,9 @@
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')
1
+ const _ = require('./main.f.js')
2
+ const btree = require('../types/main.f.js')
3
+ const s = require('../set/main.f.js')
4
+ const { stringCmp } = require('../../function/compare/main.f.js')
5
+ const json = require('../../../json/main.f.js')
6
+ const { sort } = require('../../object/main.f.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('../index.js')
2
- const find = require('../find/index.js')
3
- const cmp = require('../../function/compare/index.js')
4
- const list = require('../../list/index.js')
1
+ const _ = require('../types/main.f.js')
2
+ const find = require('../find/main.f.js')
3
+ const cmp = require('../../function/compare/main.f.js')
4
+ const list = require('../../list/main.f.js')
5
5
 
6
6
  /**
7
7
  * @template T
@@ -1,8 +1,8 @@
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')
1
+ const _ = require('./main.f.js')
2
+ const btree = require('../types/main.f.js')
3
+ const { stringCmp } = require('../../function/compare/main.f.js')
4
+ const json = require('../../../json/main.f.js')
5
+ const { sort } = require('../../object/main.f.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('./index.js')
2
- const { values } = btree
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')
1
+ const btree = require('./types/main.f.js')
2
+ const { values } = require('./main.f.js')
3
+ const json = require('../../json/main.f.js')
4
+ const { sort } = require('../object/main.f.js')
5
+ const { stringCmp } = require('../function/compare/main.f.js')
6
+ const list = require('../list/main.f.js')
7
+ const s = require('./set/main.f.js')
8
+ const f = require('./find/main.f.js')
9
9
 
10
- require('./find/test.js')
11
- require('./set/test.js')
12
- require('./remove/test.js')
10
+ require('./find/test.f.js')
11
+ require('./set/test.f.js')
12
+ require('./remove/test.f.js')
13
13
 
14
14
  const jsonStr = json.stringify(sort)
15
15
 
@@ -1,6 +1,3 @@
1
- const seq = require('../list/index.js')
2
- const option = require('../option/index.js')
3
-
4
1
  /**
5
2
  * @template T
6
3
  * @typedef {readonly[T]} Array1
@@ -54,29 +51,6 @@ const option = require('../option/index.js')
54
51
  * @typedef {Node<T> | undefined} Tree
55
52
  */
56
53
 
57
- /** @type {<T>(node: Node<T>) => seq.Thunk<T>} */
58
- const nodeValues = node => () => {
59
- switch (node.length) {
60
- case 1: case 2: { return node }
61
- case 3: {
62
- return seq.flat([
63
- nodeValues(node[0]),
64
- [node[1]],
65
- nodeValues(node[2])
66
- ])
67
- }
68
- default: {
69
- return seq.flat([
70
- nodeValues(node[0]),
71
- [node[1]],
72
- nodeValues(node[2]),
73
- [node[3]],
74
- nodeValues(node[4])
75
- ])
76
- }
77
- }
78
- }
79
-
80
54
  /**
81
55
  * @template T
82
56
  * @typedef {readonly[Node<T>]} Branch1
@@ -87,10 +61,4 @@ const nodeValues = node => () => {
87
61
  * @typedef { readonly[...Branch5<T>, T, Node<T>] } Branch7
88
62
  */
89
63
 
90
- /** @type {<T>(tree: Tree<T>) => seq.List<T>} */
91
- const values = option.map(nodeValues)
92
-
93
- module.exports = {
94
- /** @readonly */
95
- values,
96
- }
64
+ module.exports = {}
@@ -1,4 +1,4 @@
1
- const array = require('../../array/index.js')
1
+ const array = require('../../array/main.f.js')
2
2
 
3
3
  /** @typedef {array.Index3} Index3 */
4
4
  /** @typedef {array.Index5} Index5 */
@@ -1,4 +1,4 @@
1
- const _ = require('./index.js')
1
+ const _ = require('./main.f.js')
2
2
 
3
3
  {
4
4
  const result = _.numberCmp(4)(5)
@@ -18,6 +18,10 @@ const identity = value => value
18
18
  const flip = f => b => a => f(a)(b)
19
19
 
20
20
  module.exports = {
21
+ /** @readonly */
22
+ compare: require('./compare/main.f.js'),
23
+ /** @readonly */
24
+ operator: require('./operator/main.f.js'),
21
25
  /** @readonly */
22
26
  identity,
23
27
  /** @readonly */
File without changes
@@ -1,6 +1,6 @@
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')
1
+ const { compose, identity } = require('../function/main.f.js')
2
+ const operator = require('../function/operator/main.f.js')
3
+ const { logicalNot, strictEqual, stateScanToScan, reduceToScan, foldToScan } = operator
4
4
 
5
5
  /**
6
6
  * @template T
@@ -1,7 +1,7 @@
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')
1
+ const _ = require('./main.f.js')
2
+ const json = require('../../json/main.f.js')
3
+ const { sort } = require('../object/main.f.js')
4
+ const { addition, strictEqual, foldToScan } = require('../function/operator/main.f.js')
5
5
 
6
6
  /** @type {(sequence: _.List<json.Unknown>) => string} */
7
7
  const stringify = sequence => json.stringify(sort)(_.toArray(sequence))
@@ -0,0 +1,20 @@
1
+ module.exports = {
2
+ /** @readonly */
3
+ array: require('./array/main.f.js'),
4
+ /** @readonly */
5
+ btree: require('./btree/main.f.js'),
6
+ /** @readonly */
7
+ function: require('./function/main.f.js'),
8
+ /** @readonly */
9
+ list: require('./list/main.f.js'),
10
+ /** @readonly */
11
+ map: require('./map/main.f.js'),
12
+ /** @readonly */
13
+ object: require('./object/main.f.js'),
14
+ /** @readonly */
15
+ range: require('./range/main.f.js'),
16
+ /** @readonly */
17
+ result: require('./result/main.f.js'),
18
+ /** @readonly */
19
+ stringSet: require('./stringset/main.f.js'),
20
+ }
@@ -1,11 +1,12 @@
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')
1
+ const btTypes = require('../btree/types/main.f.js')
2
+ const btree = require('../btree/main.f.js')
3
+ const { values } = require("../btree/main.f.js")
4
+ const find = require('../btree/find/main.f.js')
5
+ const s = require('../btree/set/main.f.js')
6
+ const compare = require('../function/compare/main.f.js')
7
+ const { stringCmp } = require('../function/compare/main.f.js')
8
+ const list = require('../list/main.f.js')
9
+ const btRemove = require('../btree/remove/main.f.js')
9
10
 
10
11
  /** @typedef {compare.Sign} Sign */
11
12
 
@@ -21,7 +22,7 @@ const btRemove = require('../btree/remove/index.js')
21
22
 
22
23
  /**
23
24
  * @template T
24
- * @typedef {btree.Tree<Entry<T>>} Map
25
+ * @typedef {btTypes.Tree<Entry<T>>} Map
25
26
  */
26
27
 
27
28
  /** @type {(a: string) => <T>(b: Entry<T>) => Sign} */
@@ -1,5 +1,5 @@
1
- const { at, set, empty, entries, remove } = require('./index.js')
2
- const seq = require('../list/index.js')
1
+ const { at, set, empty, entries, remove } = require('./main.f.js')
2
+ const seq = require('../list/main.f.js')
3
3
 
4
4
  {
5
5
  let m = set('a')(1)(undefined)
@@ -53,7 +53,7 @@ const seq = require('../list/index.js')
53
53
  }
54
54
 
55
55
  {
56
- /** @type {import('.').Map<number>} */
56
+ /** @type {import('./main.f').Map<number>} */
57
57
  let m = empty
58
58
  for (let i = 0; i < 100_000; ++i) {
59
59
  m = set((i * i).toString())(i)(m)
@@ -1,5 +1,5 @@
1
- const list = require('../list/index.js')
2
- const map = require('../map/index.js')
1
+ const list = require('../list/main.f.js')
2
+ const map = require('../map/main.f.js')
3
3
 
4
4
  /**
5
5
  * @template T
@@ -1,4 +1,4 @@
1
- const _ = require('./index.js')
1
+ const _ = require('./main.f.js')
2
2
 
3
3
  {
4
4
  const a = {}
File without changes
File without changes
@@ -1,4 +1,4 @@
1
- const _ = require('./index.js')
1
+ const _ = require('./main.f.js')
2
2
 
3
3
  {
4
4
  if (!_.contains([0, 5])(1)) { throw 1 }
File without changes
@@ -1,18 +1,17 @@
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')
1
+ const btTypes = require('../btree/types/main.f.js')
2
+ const btree = require('../btree/main.f.js')
3
+ const { find } = btree
4
+ const { stringCmp } = require("../function/compare/main.f.js")
5
+ const list = require('../list/main.f.js')
6
+ const { compose } = require('../function/main.f.js')
8
7
 
9
- /** @typedef {btree.Tree<string>} StringSet */
8
+ /** @typedef {btTypes.Tree<string>} StringSet */
10
9
 
11
10
  /** @type {(value: string) => (set: StringSet) => boolean} */
12
11
  const contains = value => s => s !== undefined && find.isFound(find.find(stringCmp(value))(s).first)
13
12
 
14
13
  /** @type {(value: string) => (s: StringSet) => StringSet} */
15
- const set = value => btSet.set(stringCmp(value))(value)
14
+ const set = value => btree.set.set(stringCmp(value))(value)
16
15
 
17
16
  /** @type {(s: StringSet) => list.List<string>} */
18
17
  const values = btree.values
@@ -20,7 +19,7 @@ const values = btree.values
20
19
  const fromValues = list.reduce(set)(undefined)
21
20
 
22
21
  /** @type {(value: string) => (s: StringSet) => StringSet} */
23
- const remove = compose(stringCmp)(btRemove.remove)
22
+ const remove = compose(stringCmp)(btree.remove.remove)
24
23
 
25
24
  module.exports = {
26
25
  /** @readonly */
@@ -1,4 +1,4 @@
1
- const _ = require('./index.js')
1
+ const _ = require('./main.f.js')
2
2
 
3
3
  {
4
4
  const r = _.set('hello')(undefined)
package/commonjs/index.js DELETED
@@ -1,11 +0,0 @@
1
- /** @typedef {(packageName: string) => PackageMap|Package|undefined} PackageMap */
2
-
3
- /**
4
- * @typedef {readonly[
5
- * string,
6
- * PackageMap,
7
- * (fileName: string) => string|undefined
8
- * ]} Package
9
- */
10
-
11
- module.exports = {}