@nxtedition/lib 26.8.7 → 27.0.0-alpha.0
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/app.js +1 -1
- package/couch.js +1 -1
- package/package.json +10 -48
- package/rxjs/auditMap.js +0 -111
- package/rxjs/auditMap.test.js +0 -64
- package/rxjs/combineMap.d.ts +0 -6
- package/rxjs/combineMap.js +0 -152
- package/rxjs/combineMap.test.js +0 -199
- package/rxjs/firstValueFrom.d.ts +0 -12
- package/rxjs/firstValueFrom.js +0 -18
- package/rxjs/lastValueFrom.js +0 -14
- package/rxjs/retry.js +0 -112
- package/rxjs/withAbortSignal.js +0 -31
- package/s3.js +0 -339
- package/timeline.js +0 -115
- package/util/template/index-common.d.ts +0 -67
- package/util/template/index-common.js +0 -226
- package/util/template/index-web.d.ts +0 -1
- package/util/template/index-web.js +0 -28
- package/util/template/index.d.ts +0 -1
- package/util/template/index.js +0 -26
- package/util/template/index.test.js +0 -94
- package/util/template/javascript.js +0 -692
- package/util/template/nextpressions.js +0 -600
- package/util/template/nextpressions.test.js +0 -165
- package/util/template/transform.js +0 -22
- package/util/template/transform.test.js +0 -16
- package/weakCache.d.ts +0 -4
- package/weakCache.js +0 -25
- package/yield.js +0 -103
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import { test } from 'node:test'
|
|
2
|
-
import assert from 'node:assert'
|
|
3
|
-
import { makeTemplateCompiler } from './index.js'
|
|
4
|
-
import * as rxjs from 'rxjs'
|
|
5
|
-
|
|
6
|
-
const { resolveTemplate } = makeTemplateCompiler({
|
|
7
|
-
ds: {
|
|
8
|
-
record: {
|
|
9
|
-
observe: () => rxjs.of({ foo: 'bar' }),
|
|
10
|
-
},
|
|
11
|
-
},
|
|
12
|
-
})
|
|
13
|
-
|
|
14
|
-
test('hash to int', async () => {
|
|
15
|
-
const val = await resolveTemplate('{{test | hashaint() | mod(128)}}', { test: { foo: '11d1' } })
|
|
16
|
-
assert.strictEqual(Number.isFinite(val), true)
|
|
17
|
-
})
|
|
18
|
-
|
|
19
|
-
test('baseValue', async () => {
|
|
20
|
-
assert.strictEqual(await resolveTemplate('{{test}}', { test: '11d1' }), '11d1')
|
|
21
|
-
assert.strictEqual(await resolveTemplate('{{test}}', { test: rxjs.of('11d1') }), '11d1')
|
|
22
|
-
assert.strictEqual(
|
|
23
|
-
await resolveTemplate('{{test.asd}}', { test: rxjs.of({ asd: '11d1' }) }),
|
|
24
|
-
'11d1',
|
|
25
|
-
)
|
|
26
|
-
assert.strictEqual(
|
|
27
|
-
await resolveTemplate('{{test.asd}}', { test: { asd: rxjs.of('11d1') } }),
|
|
28
|
-
'11d1',
|
|
29
|
-
)
|
|
30
|
-
})
|
|
31
|
-
|
|
32
|
-
test('integer ops', async () => {
|
|
33
|
-
assert.strictEqual(await resolveTemplate('{{test | div(2)}}', { test: '8' }), 4)
|
|
34
|
-
assert.strictEqual(await resolveTemplate('{{test | div(2)}}', { test: 8 }), 4)
|
|
35
|
-
assert.strictEqual(await resolveTemplate('{{test | mul(2)}}', { test: '8' }), 16)
|
|
36
|
-
assert.strictEqual(await resolveTemplate('{{test | mul(2)}}', { test: 8 }), 16)
|
|
37
|
-
assert.strictEqual(await resolveTemplate('{{test | add(2)}}', { test: '10' }), 12)
|
|
38
|
-
assert.strictEqual(await resolveTemplate('{{test | add(2)}}', { test: 10 }), 12)
|
|
39
|
-
assert.strictEqual(await resolveTemplate('{{test | sub(2)}}', { test: '10' }), 8)
|
|
40
|
-
assert.strictEqual(await resolveTemplate('{{test | sub(2)}}', { test: 10 }), 8)
|
|
41
|
-
})
|
|
42
|
-
|
|
43
|
-
test('null undefined args', async () => {
|
|
44
|
-
assert.strictEqual(await resolveTemplate('{{asd | default(null, true)}}', {}), null)
|
|
45
|
-
assert.strictEqual(await resolveTemplate('{{asd | default(undefined, true)}}', {}), undefined)
|
|
46
|
-
})
|
|
47
|
-
|
|
48
|
-
test('path var', async () => {
|
|
49
|
-
assert.strictEqual(await resolveTemplate('{{test.foo}}', { test: { foo: '111' } }), '111')
|
|
50
|
-
})
|
|
51
|
-
|
|
52
|
-
test('replaces strings', async () => {
|
|
53
|
-
assert.strictEqual(await resolveTemplate('{{test}}', { test: '111' }), '111')
|
|
54
|
-
assert.strictEqual(await resolveTemplate('pre{{test}}post', { test: '111' }), 'pre111post')
|
|
55
|
-
assert.strictEqual(
|
|
56
|
-
await resolveTemplate('123{{test}}456{{test}}{{test}}', { test: 'body' }),
|
|
57
|
-
'123body456bodybody',
|
|
58
|
-
)
|
|
59
|
-
assert.strictEqual(
|
|
60
|
-
await resolveTemplate('test{{test.foo}}test{{test.bar.baz}}test', {
|
|
61
|
-
test: { foo: '111', bar: { baz: '222' } },
|
|
62
|
-
}),
|
|
63
|
-
'test111test222test',
|
|
64
|
-
)
|
|
65
|
-
assert.strictEqual(await resolveTemplate('{{ asd | default("te | st")}}', {}), 'te | st')
|
|
66
|
-
assert.strictEqual(await resolveTemplate('{{ asd | default("test\n") }}', {}), 'test\n')
|
|
67
|
-
assert.strictEqual(await resolveTemplate('{{ asd | default("test\n\n") }}', {}), 'test\n\n')
|
|
68
|
-
assert.strictEqual(await resolveTemplate('{{ asd | default("test\r\n") }}', {}), 'test\r\n')
|
|
69
|
-
})
|
|
70
|
-
|
|
71
|
-
test('nested', async () => {
|
|
72
|
-
assert.strictEqual(
|
|
73
|
-
await resolveTemplate('{{ asd | default("{{foo}}") }}', { foo: '"test"' }),
|
|
74
|
-
'"test"',
|
|
75
|
-
)
|
|
76
|
-
assert.strictEqual(await resolveTemplate('{{{{foo}}}}', { test: '111', foo: 'test' }), '111')
|
|
77
|
-
assert.strictEqual(
|
|
78
|
-
await resolveTemplate('f{{oo}}', { test: '111', foo: 'test', oo: 'oo' }),
|
|
79
|
-
'foo',
|
|
80
|
-
)
|
|
81
|
-
assert.strictEqual(
|
|
82
|
-
await resolveTemplate('{{f{{oo}}}}', { test: '111', foo: 'test', oo: 'oo' }),
|
|
83
|
-
'test',
|
|
84
|
-
)
|
|
85
|
-
assert.strictEqual(await resolveTemplate('{{{{foo}}}}', { test: '111', foo: 'test' }), '111')
|
|
86
|
-
assert.strictEqual(
|
|
87
|
-
await resolveTemplate('{{{{f{{o}}o}}}}', { test: '111', foo: 'test', o: 'o' }),
|
|
88
|
-
'111',
|
|
89
|
-
)
|
|
90
|
-
assert.strictEqual(
|
|
91
|
-
await resolveTemplate('{{ asd | default("{{test}}")}}', { test: '111', foo: 'test' }),
|
|
92
|
-
'111',
|
|
93
|
-
)
|
|
94
|
-
assert.strictEqual(
|
|
95
|
-
await resolveTemplate('{{ asd | default("{{t{{es}}t}}")}}', {
|
|
96
|
-
test: '111',
|
|
97
|
-
foo: 'test',
|
|
98
|
-
es: 'es',
|
|
99
|
-
}),
|
|
100
|
-
'111',
|
|
101
|
-
)
|
|
102
|
-
assert.strictEqual(
|
|
103
|
-
await resolveTemplate('{{ asd | default("{{test | default("test\n")}}")}}', {}),
|
|
104
|
-
'test\n',
|
|
105
|
-
)
|
|
106
|
-
assert.strictEqual(
|
|
107
|
-
await resolveTemplate('{{ asd | default("{{test | default("test\n\n")}}")}}', {}),
|
|
108
|
-
'test\n\n',
|
|
109
|
-
)
|
|
110
|
-
assert.strictEqual(
|
|
111
|
-
await resolveTemplate('{{ asd | default("{{test | default("test\r\n")}}")}}', {}),
|
|
112
|
-
'test\r\n',
|
|
113
|
-
)
|
|
114
|
-
})
|
|
115
|
-
|
|
116
|
-
test('append', async () => {
|
|
117
|
-
assert.strictEqual(await resolveTemplate("{{test | append('1')}}", { test: '111' }), '1111')
|
|
118
|
-
})
|
|
119
|
-
|
|
120
|
-
test('object', async () => {
|
|
121
|
-
const obj = { foo: 1 }
|
|
122
|
-
assert.strictEqual(await resolveTemplate('{{test}}', { test: obj }), obj)
|
|
123
|
-
})
|
|
124
|
-
|
|
125
|
-
test('ds', async () => {
|
|
126
|
-
assert.strictEqual(
|
|
127
|
-
await resolveTemplate("{{test | ds() | pluck('foo')}}", { test: 'foo' }),
|
|
128
|
-
'bar',
|
|
129
|
-
)
|
|
130
|
-
})
|
|
131
|
-
|
|
132
|
-
test('replace array', async () => {
|
|
133
|
-
assert.deepStrictEqual(
|
|
134
|
-
await resolveTemplate('{{test | join("#") | replace("foo", "bar") | split("#")}}', {
|
|
135
|
-
test: ['foo', 'bar'],
|
|
136
|
-
}),
|
|
137
|
-
['bar', 'bar'],
|
|
138
|
-
)
|
|
139
|
-
assert.deepStrictEqual(
|
|
140
|
-
await resolveTemplate('{{test | join(",") | replace("foo", "bar") | split(",")}}', {
|
|
141
|
-
test: ['foo', 'bar'],
|
|
142
|
-
}),
|
|
143
|
-
['bar', 'bar'],
|
|
144
|
-
)
|
|
145
|
-
})
|
|
146
|
-
|
|
147
|
-
test('You Do Not Know Me', async () => {
|
|
148
|
-
assert.deepStrictEqual(
|
|
149
|
-
await resolveTemplate('{{id | default("You Do Not Know", true)}} -', {}),
|
|
150
|
-
'You Do Not Know -',
|
|
151
|
-
)
|
|
152
|
-
})
|
|
153
|
-
|
|
154
|
-
test('object 1', async () => {
|
|
155
|
-
assert.deepStrictEqual(await resolveTemplate({ asd: ['{{foo}}'] }, { foo: 'bar' }), {
|
|
156
|
-
asd: ['bar'],
|
|
157
|
-
})
|
|
158
|
-
})
|
|
159
|
-
|
|
160
|
-
test('empty arg', async () => {
|
|
161
|
-
assert.deepStrictEqual(
|
|
162
|
-
await resolveTemplate('{{source.value | includes("salami") | ternary([], )}}', {}),
|
|
163
|
-
undefined,
|
|
164
|
-
)
|
|
165
|
-
})
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { parse } from 'acorn'
|
|
2
|
-
import { generate } from 'astring'
|
|
3
|
-
|
|
4
|
-
export default function (code) {
|
|
5
|
-
const ast = parse(code, { ecmaVersion: 'latest' })
|
|
6
|
-
|
|
7
|
-
const { body } = ast
|
|
8
|
-
|
|
9
|
-
if (body.length > 0) {
|
|
10
|
-
const lastStatement = body[body.length - 1]
|
|
11
|
-
|
|
12
|
-
if (lastStatement.type !== 'ReturnStatement') {
|
|
13
|
-
body[body.length - 1] = {
|
|
14
|
-
type: 'ReturnStatement',
|
|
15
|
-
argument:
|
|
16
|
-
lastStatement.type === 'ExpressionStatement' ? lastStatement.expression : lastStatement,
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
return generate(ast)
|
|
22
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { test } from 'node:test'
|
|
2
|
-
import assert from 'node:assert'
|
|
3
|
-
import transform from './transform.js'
|
|
4
|
-
|
|
5
|
-
test('transform', function () {
|
|
6
|
-
assert.strictEqual(transform('const x = 2; x;'), 'const x = 2;\nreturn x;\n')
|
|
7
|
-
assert.strictEqual(transform('[1,2,3];'), 'return [1, 2, 3];\n')
|
|
8
|
-
assert.strictEqual(transform('[1,2,3]'), 'return [1, 2, 3];\n')
|
|
9
|
-
assert.strictEqual(transform('x\n? \n2 \n: \n3'), `return x ? 2 : 3;\n`)
|
|
10
|
-
// assert.strictEqual(transform('return x\n? \n2 \n: \n3'), `return x ? 2 : 3;\n`)
|
|
11
|
-
// assert.strictEqual(transform('return\n x\n? \n2 \n: \n3'), `return x ? 2 : 3;\n`)
|
|
12
|
-
assert.strictEqual(
|
|
13
|
-
transform('$.width > $.height ? 30 : 20'),
|
|
14
|
-
`return $.width > $.height ? 30 : 20;\n`,
|
|
15
|
-
)
|
|
16
|
-
})
|
package/weakCache.d.ts
DELETED
package/weakCache.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
export function makeWeakCache(valueSelector, keySelector) {
|
|
2
|
-
const cache = new Map()
|
|
3
|
-
const finalizationRegistry = new FinalizationRegistry((key) => {
|
|
4
|
-
const ref = cache.get(key)
|
|
5
|
-
if (ref !== undefined && ref.deref() === undefined) {
|
|
6
|
-
cache.delete(key)
|
|
7
|
-
}
|
|
8
|
-
})
|
|
9
|
-
return (...args) => {
|
|
10
|
-
const key = keySelector ? keySelector(...args) : args[0]
|
|
11
|
-
const ref = cache.get(key)
|
|
12
|
-
if (ref != null) {
|
|
13
|
-
const deref = ref.deref()
|
|
14
|
-
if (deref != null) {
|
|
15
|
-
return deref
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
const value = valueSelector(...args)
|
|
19
|
-
if (value != null) {
|
|
20
|
-
cache.set(key, new WeakRef(value))
|
|
21
|
-
finalizationRegistry.register(value, key)
|
|
22
|
-
}
|
|
23
|
-
return value
|
|
24
|
-
}
|
|
25
|
-
}
|
package/yield.js
DELETED
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
const kDefaultSchedule = globalThis.setImmediate ?? ((fn) => setTimeout(fn, 0))
|
|
2
|
-
let yieldSchedule = kDefaultSchedule
|
|
3
|
-
const yieldQueue = []
|
|
4
|
-
|
|
5
|
-
let yieldIndex = 0
|
|
6
|
-
let yieldTimeout = 40
|
|
7
|
-
let yieldActive = false
|
|
8
|
-
let yieldScheduled = false
|
|
9
|
-
let yieldTime = performance.now()
|
|
10
|
-
|
|
11
|
-
export function setYieldDispatcher(schedule) {
|
|
12
|
-
yieldSchedule = schedule ?? kDefaultSchedule
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export function setYieldTimeout(timeout) {
|
|
16
|
-
if (typeof timeout !== 'number' || timeout < 0) {
|
|
17
|
-
throw new TypeError('timeout must be a positive number')
|
|
18
|
-
}
|
|
19
|
-
yieldTimeout = timeout
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export function shouldYield(timeout) {
|
|
23
|
-
if (timeout === undefined) {
|
|
24
|
-
timeout = yieldTimeout
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
if (!yieldActive && performance.now() - yieldTime >= timeout) {
|
|
28
|
-
yieldActive = true
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return yieldActive
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export function maybeYield(callback, opaque, timeout) {
|
|
35
|
-
if (callback != null && typeof callback !== 'function') {
|
|
36
|
-
throw new TypeError('callback must be a function')
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
if (shouldYield(timeout)) {
|
|
40
|
-
return doYield(callback, opaque)
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
if (callback != null) {
|
|
44
|
-
callback(null, opaque)
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return null
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export function doYield(callback, opaque) {
|
|
51
|
-
if (callback != null && typeof callback !== 'function') {
|
|
52
|
-
throw new TypeError('callback must be a function')
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
if (!yieldScheduled) {
|
|
56
|
-
yieldScheduled = true
|
|
57
|
-
yieldSchedule(dispatchYield)
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
if (callback != null) {
|
|
61
|
-
yieldQueue.push(callback, opaque)
|
|
62
|
-
return null
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
return new Promise((resolve) => {
|
|
66
|
-
yieldQueue.push(resolve, opaque)
|
|
67
|
-
})
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
function dispatchYield() {
|
|
71
|
-
yieldTime = performance.now()
|
|
72
|
-
yieldActive = false
|
|
73
|
-
|
|
74
|
-
const maxIndex = yieldQueue.length
|
|
75
|
-
|
|
76
|
-
while (yieldIndex < maxIndex) {
|
|
77
|
-
const resolve = yieldQueue[yieldIndex]
|
|
78
|
-
yieldQueue[yieldIndex] = null
|
|
79
|
-
yieldIndex += 1
|
|
80
|
-
|
|
81
|
-
const opaque = yieldQueue[yieldIndex]
|
|
82
|
-
yieldQueue[yieldIndex] = null
|
|
83
|
-
yieldIndex += 1
|
|
84
|
-
|
|
85
|
-
resolve(opaque)
|
|
86
|
-
|
|
87
|
-
if (shouldYield()) {
|
|
88
|
-
break
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
if (yieldIndex === yieldQueue.length) {
|
|
93
|
-
yieldScheduled = false
|
|
94
|
-
yieldQueue.splice(0)
|
|
95
|
-
yieldIndex = 0
|
|
96
|
-
} else {
|
|
97
|
-
if (yieldIndex > 16 * 1024) {
|
|
98
|
-
yieldQueue.splice(0, yieldIndex)
|
|
99
|
-
yieldIndex = 0
|
|
100
|
-
}
|
|
101
|
-
yieldSchedule(dispatchYield)
|
|
102
|
-
}
|
|
103
|
-
}
|