functionalscript 0.0.574 → 0.0.575

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.
@@ -18,11 +18,18 @@ jobs:
18
18
  with:
19
19
  node-version: 22
20
20
  registry-url: https://registry.npmjs.org/
21
+ - uses: denoland/setup-deno@v1
22
+ with:
23
+ deno-version: 2
21
24
  # - run: npm ci
22
25
  - run: npm run version
26
+ - run: npm run index
23
27
  - run: npm publish
24
28
  env:
25
29
  NODE_AUTH_TOKEN: ${{secrets.npm_token}}
30
+ - run: deno publish
31
+
32
+
26
33
 
27
34
  # publish-gpr:
28
35
  # runs-on: ubuntu-latest
package/dev/index.mjs ADDED
@@ -0,0 +1,3 @@
1
+ import { index } from "./module.mjs"
2
+
3
+ index()
package/dev/module.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { readdir, readFile } from 'node:fs/promises'
1
+ import { readdir, readFile, writeFile } from 'node:fs/promises'
2
2
 
3
3
  /**
4
4
  * @typedef {{
@@ -165,3 +165,59 @@ export const loadModuleMap = async () => {
165
165
 
166
166
  return build()
167
167
  }
168
+
169
+ /**
170
+ * @typedef {{
171
+ * readonly[k in string]: string | FolderMap
172
+ * }} FolderMap
173
+ */
174
+
175
+ /** @type {(m: FolderMap) => (s: readonly string[]) => FolderMap } */
176
+ const folderMapAdd = m => s => {
177
+ const [first, ...rest] = s
178
+ const firstResult = m[first]
179
+ return typeof firstResult === 'string'
180
+ ? m
181
+ : {
182
+ ...m,
183
+ [first]: rest.length === 1
184
+ ? rest[0]
185
+ : folderMapAdd(firstResult === undefined ? {} : firstResult)(rest)
186
+ }
187
+ }
188
+
189
+ const indent = ' '
190
+
191
+ /** @type {(i: string) => (p: string) => (m: FolderMap) => string} */
192
+ const codeAdd = i => p => m => {
193
+ let result = ''
194
+ for (const [k, v] of Object.entries(m)) {
195
+ const np = `${p}${k}/`
196
+ if (typeof v === 'string') {
197
+ result += `${i}${k}: require("${np}${v}"),\n`
198
+ } else {
199
+ result += `${i}${k}: \{\n`
200
+ result += codeAdd(i + indent)(np)(v)
201
+ result += `${i}\},\n`
202
+ }
203
+ }
204
+ return result
205
+ }
206
+
207
+ export const index = async() => {
208
+ /** @type {FolderMap} */
209
+ let m = {}
210
+ for (const k in await loadModuleMap()) {
211
+ const [, ...s] = k.split('/')
212
+ if (s[s.length - 1] === 'module.f.cjs') {
213
+ m = folderMapAdd(m)(s)
214
+ }
215
+ }
216
+ console.log(m)
217
+ let s =
218
+ '// Generated file.\n' +
219
+ 'module.exports = {\n'
220
+ s += codeAdd(indent)('./')(m)
221
+ s += '}\n'
222
+ await writeFile('index.f.cjs', s)
223
+ }
package/index.f.cjs ADDED
@@ -0,0 +1,40 @@
1
+ // Generated file.
2
+ module.exports = {
3
+ types: {
4
+ nullable: require("./types/nullable/module.f.cjs"),
5
+ array: require("./types/array/module.f.cjs"),
6
+ function: require("./types/function/module.f.cjs"),
7
+ list: require("./types/list/module.f.cjs"),
8
+ btree: require("./types/btree/module.f.cjs"),
9
+ string: require("./types/string/module.f.cjs"),
10
+ map: require("./types/map/module.f.cjs"),
11
+ object: require("./types/object/module.f.cjs"),
12
+ bigint: require("./types/bigint/module.f.cjs"),
13
+ bigfloat: require("./types/bigfloat/module.f.cjs"),
14
+ sorted_list: require("./types/sorted_list/module.f.cjs"),
15
+ number: require("./types/number/module.f.cjs"),
16
+ range: require("./types/range/module.f.cjs"),
17
+ range_map: require("./types/range_map/module.f.cjs"),
18
+ result: require("./types/result/module.f.cjs"),
19
+ string_set: require("./types/string_set/module.f.cjs"),
20
+ sorted_set: require("./types/sorted_set/module.f.cjs"),
21
+ byte_set: require("./types/byte_set/module.f.cjs"),
22
+ nibble_set: require("./types/nibble_set/module.f.cjs"),
23
+ },
24
+ com: require("./com/module.f.cjs"),
25
+ text: require("./text/module.f.cjs"),
26
+ json: require("./json/module.f.cjs"),
27
+ js: {
28
+ tokenizer: require("./js/tokenizer/module.f.cjs"),
29
+ },
30
+ commonjs: require("./commonjs/module.f.cjs"),
31
+ dev: require("./dev/module.f.cjs"),
32
+ djs: require("./djs/module.f.cjs"),
33
+ fsc: require("./fsc/module.f.cjs"),
34
+ fsm: require("./fsm/module.f.cjs"),
35
+ html: require("./html/module.f.cjs"),
36
+ nodejs: require("./nodejs/module.f.cjs"),
37
+ prime_field: require("./prime_field/module.f.cjs"),
38
+ secp: require("./secp/module.f.cjs"),
39
+ sha2: require("./sha2/module.f.cjs"),
40
+ }
package/jsr.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "@functionalscript/functionalscript",
3
- "version": "0.0.0",
4
- "exports": "./module.f.cjs"
2
+ "name": "@functionalscript/functionalscript",
3
+ "version": "0.0.575",
4
+ "exports": "./index.f.cjs"
5
5
  }
@@ -24,17 +24,26 @@
24
24
 
25
25
  const { stringify, parse } = JSON
26
26
 
27
- /** @type {<T>(node: Node<T>) => T} */
28
- const version = ({ child_process, fs }) =>
29
- fs.writeFileSync(
30
- 'package.json',
31
- stringify(
32
- {
33
- ...parse(fs.readFileSync('package.json').toString()),
34
- version: `0.0.${child_process.execSync('git log --oneline').toString().split('\n').length - 1}`
35
- },
36
- null,
37
- 2))
27
+ /** @type {<T>(node: Node<T>) => readonly[T, T]} */
28
+ const version = ({ child_process, fs }) => {
29
+ const version = `0.0.${child_process.execSync('git log --oneline').toString().split('\n').length - 1}`
30
+ const f = (/** @type {string} */jsonFile) => {
31
+ const file = `${jsonFile}.json`
32
+ return fs.writeFileSync(
33
+ file,
34
+ stringify(
35
+ {
36
+ ...parse(fs.readFileSync(file).toString()),
37
+ version
38
+ },
39
+ null,
40
+ 2))
41
+ }
42
+ return [
43
+ f('package'),
44
+ f('jsr')
45
+ ]
46
+ }
38
47
 
39
48
  module.exports = {
40
49
  /** @readonly */
@@ -86,6 +86,6 @@ module.exports = () => {
86
86
  writeFileSync: (_, content) => content
87
87
  }
88
88
  }
89
- const v = _.version(node)
90
- if (v !== e) { throw [v, e] }
89
+ const [n, d] = _.version(node)
90
+ if (n !== e) { throw [n, e] }
91
91
  }
package/package.json CHANGED
@@ -1,10 +1,12 @@
1
1
  {
2
2
  "name": "functionalscript",
3
- "version": "0.0.574",
3
+ "version": "0.0.575",
4
4
  "description": "FunctionalScript is a functional subset of JavaScript",
5
+ "main": "index.f.cjs",
5
6
  "scripts": {
6
7
  "tsc": "tsc",
7
8
  "test": "tsc && npm run test-only",
9
+ "index": "node ./dev/index.mjs",
8
10
  "version": "node ./nodejs/version/main.cjs",
9
11
  "test-only": "node --trace-uncaught ./dev/test.mjs",
10
12
  "comtest": "node ./com/test/build.cjs"
@@ -29,7 +31,7 @@
29
31
  },
30
32
  "homepage": "https://github.com/functionalscript/functionalscript#readme",
31
33
  "devDependencies": {
32
- "@types/node": "^22.9.3",
34
+ "@types/node": "^22.10.0",
33
35
  "typescript": "^5.7.2"
34
36
  }
35
37
  }