@jdeighan/coffee-utils 17.0.0 → 17.0.2

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/package.json CHANGED
@@ -1,14 +1,12 @@
1
1
  {
2
2
  "name": "@jdeighan/coffee-utils",
3
3
  "type": "module",
4
- "version": "17.0.0",
4
+ "version": "17.0.2",
5
5
  "description": "A set of utility functions for CoffeeScript",
6
6
  "main": "coffee_utils.js",
7
7
  "exports": {
8
8
  ".": "./src/lib/fs.js",
9
- "./server": "./src/lib/server.js",
10
9
  "./fs": "./src/lib/fs.js",
11
- "./fsa": "./src/lib/fsa.js",
12
10
  "./block": "./src/lib/block.js",
13
11
  "./html": "./src/lib/html.js",
14
12
  "./section": "./src/lib/Section.js",
@@ -1,82 +0,0 @@
1
- # fsa.coffee
2
-
3
- import {assert, croak} from '@jdeighan/base-utils/exceptions'
4
- import {LOG} from '@jdeighan/base-utils/log'
5
- import {dbg, dbgEnter, dbgReturn} from '@jdeighan/base-utils/debug'
6
- import {
7
- undef, defined, notdefined, words, isEmpty, nonEmpty,
8
- isString, OL, toArray,
9
- } from '@jdeighan/base-utils'
10
-
11
- # ---------------------------------------------------------------------------
12
-
13
- export class FSA
14
-
15
- constructor: (block) ->
16
-
17
- dbgEnter "FSA", block
18
- assert isString(block), "block not a string"
19
- @hTransitions = {}
20
- lLines = toArray(block, 'noEmptyLines')
21
- dbg 'lLines', lLines
22
- for line,i in lLines
23
- dbg "LINE #{i}", line
24
- lWords = words(line)
25
- if (lWords.length == 3)
26
- [bState, token, eState] = lWords
27
- output = undef
28
- else if (lWords.length == 4)
29
- [bState, token, eState, output] = lWords
30
- else
31
- croak "Invalid desc: #{OL(line)}"
32
- dbg "LINE #{i}: #{OL(bState)} #{OL(token)} #{OL(eState)} #{OL(output)}"
33
- assert nonEmpty(eState), "Invalid FSA description #{i}"
34
-
35
- # --- tokens may be quoted (but may not contain whitespace),
36
- # but the quotes are stripped
37
- if (i == 0)
38
- assert (bState == 'start'), "Invalid FSA description #{i}"
39
- token = @fixToken(token)
40
- dbg 'token', token
41
- if isEmpty(output)
42
- output = undef
43
- hTrans = @hTransitions[bState]
44
- if notdefined(hTrans)
45
- hTrans = @hTransitions[bState] = {}
46
- assert notdefined(hTrans[token]), "Duplicate transition"
47
- hTrans[token] = [eState, output]
48
- dbg 'hTransitions', @hTransitions
49
- @curState = 'start'
50
- dbgReturn "FSA"
51
-
52
- # ..........................................................
53
-
54
- fixToken: (token) ->
55
-
56
- if lMatches = token.match(/^\'(.*)\'$/)
57
- return lMatches[1]
58
- else if lMatches = token.match(/^\"(.*)\"$/)
59
- return lMatches[1]
60
- else
61
- return token
62
-
63
- # ..........................................................
64
-
65
- got: (token) ->
66
- # --- returns pair [newState, output]
67
-
68
- hTrans = @hTransitions[@curState]
69
- if notdefined(hTrans)
70
- return [undef, undef]
71
- result = hTrans[token]
72
- if notdefined(result)
73
- return [undef, undef]
74
- [newState, output] = result
75
- assert nonEmpty(newState), "Failed: #{@curState} -> #{token}"
76
- @curState = newState
77
- return result
78
-
79
- # ..........................................................
80
-
81
- state: () ->
82
- return @curState
package/src/lib/fsa.js DELETED
@@ -1,112 +0,0 @@
1
- // Generated by CoffeeScript 2.7.0
2
- // fsa.coffee
3
- import {
4
- assert,
5
- croak
6
- } from '@jdeighan/base-utils/exceptions';
7
-
8
- import {
9
- LOG
10
- } from '@jdeighan/base-utils/log';
11
-
12
- import {
13
- dbg,
14
- dbgEnter,
15
- dbgReturn
16
- } from '@jdeighan/base-utils/debug';
17
-
18
- import {
19
- undef,
20
- defined,
21
- notdefined,
22
- words,
23
- isEmpty,
24
- nonEmpty,
25
- isString,
26
- OL,
27
- toArray
28
- } from '@jdeighan/base-utils';
29
-
30
- // ---------------------------------------------------------------------------
31
- export var FSA = class FSA {
32
- constructor(block) {
33
- var bState, eState, hTrans, i, j, lLines, lWords, len, line, output, token;
34
- dbgEnter("FSA", block);
35
- assert(isString(block), "block not a string");
36
- this.hTransitions = {};
37
- lLines = toArray(block, 'noEmptyLines');
38
- dbg('lLines', lLines);
39
- for (i = j = 0, len = lLines.length; j < len; i = ++j) {
40
- line = lLines[i];
41
- dbg(`LINE ${i}`, line);
42
- lWords = words(line);
43
- if (lWords.length === 3) {
44
- [bState, token, eState] = lWords;
45
- output = undef;
46
- } else if (lWords.length === 4) {
47
- [bState, token, eState, output] = lWords;
48
- } else {
49
- croak(`Invalid desc: ${OL(line)}`);
50
- }
51
- dbg(`LINE ${i}: ${OL(bState)} ${OL(token)} ${OL(eState)} ${OL(output)}`);
52
- assert(nonEmpty(eState), `Invalid FSA description ${i}`);
53
- // --- tokens may be quoted (but may not contain whitespace),
54
- // but the quotes are stripped
55
- if (i === 0) {
56
- assert(bState === 'start', `Invalid FSA description ${i}`);
57
- }
58
- token = this.fixToken(token);
59
- dbg('token', token);
60
- if (isEmpty(output)) {
61
- output = undef;
62
- }
63
- hTrans = this.hTransitions[bState];
64
- if (notdefined(hTrans)) {
65
- hTrans = this.hTransitions[bState] = {};
66
- }
67
- assert(notdefined(hTrans[token]), "Duplicate transition");
68
- hTrans[token] = [eState, output];
69
- }
70
- dbg('hTransitions', this.hTransitions);
71
- this.curState = 'start';
72
- dbgReturn("FSA");
73
- }
74
-
75
- // ..........................................................
76
- fixToken(token) {
77
- var lMatches;
78
- if (lMatches = token.match(/^\'(.*)\'$/)) {
79
- return lMatches[1];
80
- } else if (lMatches = token.match(/^\"(.*)\"$/)) {
81
- return lMatches[1];
82
- } else {
83
- return token;
84
- }
85
- }
86
-
87
- // ..........................................................
88
- got(token) {
89
- var hTrans, newState, output, result;
90
- // --- returns pair [newState, output]
91
- hTrans = this.hTransitions[this.curState];
92
- if (notdefined(hTrans)) {
93
- return [undef, undef];
94
- }
95
- result = hTrans[token];
96
- if (notdefined(result)) {
97
- return [undef, undef];
98
- }
99
- [newState, output] = result;
100
- assert(nonEmpty(newState), `Failed: ${this.curState} -> ${token}`);
101
- this.curState = newState;
102
- return result;
103
- }
104
-
105
- // ..........................................................
106
- state() {
107
- return this.curState;
108
- }
109
-
110
- };
111
-
112
- //# sourceMappingURL=fsa.js.map
@@ -1,13 +0,0 @@
1
- {
2
- "version": 3,
3
- "file": "fsa.js",
4
- "sourceRoot": "..\\..\\",
5
- "sources": [
6
- "src\\lib\\fsa.coffee"
7
- ],
8
- "names": [],
9
- "mappings": "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",
10
- "sourcesContent": [
11
- "# fsa.coffee\r\n\r\nimport {assert, croak} from '@jdeighan/base-utils/exceptions'\r\nimport {LOG} from '@jdeighan/base-utils/log'\r\nimport {dbg, dbgEnter, dbgReturn} from '@jdeighan/base-utils/debug'\r\nimport {\r\n\tundef, defined, notdefined, words, isEmpty, nonEmpty,\r\n\tisString, OL, toArray,\r\n\t} from '@jdeighan/base-utils'\r\n\r\n# ---------------------------------------------------------------------------\r\n\r\nexport class FSA\r\n\r\n\tconstructor: (block) ->\r\n\r\n\t\tdbgEnter \"FSA\", block\r\n\t\tassert isString(block), \"block not a string\"\r\n\t\t@hTransitions = {}\r\n\t\tlLines = toArray(block, 'noEmptyLines')\r\n\t\tdbg 'lLines', lLines\r\n\t\tfor line,i in lLines\r\n\t\t\tdbg \"LINE #{i}\", line\r\n\t\t\tlWords = words(line)\r\n\t\t\tif (lWords.length == 3)\r\n\t\t\t\t[bState, token, eState] = lWords\r\n\t\t\t\toutput = undef\r\n\t\t\telse if (lWords.length == 4)\r\n\t\t\t\t[bState, token, eState, output] = lWords\r\n\t\t\telse\r\n\t\t\t\tcroak \"Invalid desc: #{OL(line)}\"\r\n\t\t\tdbg \"LINE #{i}: #{OL(bState)} #{OL(token)} #{OL(eState)} #{OL(output)}\"\r\n\t\t\tassert nonEmpty(eState), \"Invalid FSA description #{i}\"\r\n\r\n\t\t\t# --- tokens may be quoted (but may not contain whitespace),\r\n\t\t\t# but the quotes are stripped\r\n\t\t\tif (i == 0)\r\n\t\t\t\tassert (bState == 'start'), \"Invalid FSA description #{i}\"\r\n\t\t\ttoken = @fixToken(token)\r\n\t\t\tdbg 'token', token\r\n\t\t\tif isEmpty(output)\r\n\t\t\t\toutput = undef\r\n\t\t\thTrans = @hTransitions[bState]\r\n\t\t\tif notdefined(hTrans)\r\n\t\t\t\thTrans = @hTransitions[bState] = {}\r\n\t\t\tassert notdefined(hTrans[token]), \"Duplicate transition\"\r\n\t\t\thTrans[token] = [eState, output]\r\n\t\tdbg 'hTransitions', @hTransitions\r\n\t\t@curState = 'start'\r\n\t\tdbgReturn \"FSA\"\r\n\r\n\t# ..........................................................\r\n\r\n\tfixToken: (token) ->\r\n\r\n\t\tif lMatches = token.match(/^\\'(.*)\\'$/)\r\n\t\t\treturn lMatches[1]\r\n\t\telse if lMatches = token.match(/^\\\"(.*)\\\"$/)\r\n\t\t\treturn lMatches[1]\r\n\t\telse\r\n\t\t\treturn token\r\n\r\n\t# ..........................................................\r\n\r\n\tgot: (token) ->\r\n\t\t# --- returns pair [newState, output]\r\n\r\n\t\thTrans = @hTransitions[@curState]\r\n\t\tif notdefined(hTrans)\r\n\t\t\treturn [undef, undef]\r\n\t\tresult = hTrans[token]\r\n\t\tif notdefined(result)\r\n\t\t\treturn [undef, undef]\r\n\t\t[newState, output] = result\r\n\t\tassert nonEmpty(newState), \"Failed: #{@curState} -> #{token}\"\r\n\t\t@curState = newState\r\n\t\treturn result\r\n\r\n\t# ..........................................................\r\n\r\n\tstate: () ->\r\n\t\treturn @curState\r\n"
12
- ]
13
- }
@@ -1,14 +0,0 @@
1
- # server.coffee
2
-
3
- import getline from 'readline-sync'
4
- import {execSync} from 'child_process'
5
-
6
- # ---------------------------------------------------------------------------
7
- # exec - run external commands
8
-
9
- export exec = (cmd) =>
10
-
11
- buffer = execSync cmd, {
12
- windowsHide: true
13
- }
14
- return buffer.toString()
package/src/lib/server.js DELETED
@@ -1,19 +0,0 @@
1
- // Generated by CoffeeScript 2.7.0
2
- // server.coffee
3
- import getline from 'readline-sync';
4
-
5
- import {
6
- execSync
7
- } from 'child_process';
8
-
9
- // ---------------------------------------------------------------------------
10
- // exec - run external commands
11
- export var exec = (cmd) => {
12
- var buffer;
13
- buffer = execSync(cmd, {
14
- windowsHide: true
15
- });
16
- return buffer.toString();
17
- };
18
-
19
- //# sourceMappingURL=server.js.map
@@ -1,13 +0,0 @@
1
- {
2
- "version": 3,
3
- "file": "server.js",
4
- "sourceRoot": "..\\..\\",
5
- "sources": [
6
- "src\\lib\\server.coffee"
7
- ],
8
- "names": [],
9
- "mappings": ";AAAe;AAEf,OAAO,OAAP,MAAA;;AACA,OAAA;EAAQ,QAAR;CAAA,MAAA,gBAHe;;;;AAQf,OAAA,IAAO,IAAA,GAAO,CAAC,GAAD,CAAA,GAAA;AAEd,MAAA;EAAC,MAAA,GAAS,QAAA,CAAS,GAAT,EAAc;IACtB,WAAA,EAAa;EADS,CAAd;AAGT,SAAO,MAAM,CAAC,QAAP,CAAA;AALM",
10
- "sourcesContent": [
11
- "# server.coffee\r\n\r\nimport getline from 'readline-sync'\r\nimport {execSync} from 'child_process'\r\n\r\n# ---------------------------------------------------------------------------\r\n# exec - run external commands\r\n\r\nexport exec = (cmd) =>\r\n\r\n\tbuffer = execSync cmd, {\r\n\t\twindowsHide: true\r\n\t\t}\r\n\treturn buffer.toString()\r\n"
12
- ]
13
- }