@rainbow-o23/n1 1.0.56 → 1.0.58-alpha.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/README.md +1 -0
- package/index.cjs +14 -0
- package/index.js +14 -0
- package/lib/pipeline/step-helpers.d.ts +2 -0
- package/package.json +3 -2
- package/rollup.config.base.js +1 -1
- package/src/lib/pipeline/step-helpers.ts +18 -0
package/README.md
CHANGED
|
@@ -127,6 +127,7 @@ Pipeline steps provide rich function support, and all the following functions or
|
|
|
127
127
|
| $date.dayjs | Get [Day.js](https://day.js.org/). |
|
|
128
128
|
| $math | Get [Math.js](https://mathjs.org). |
|
|
129
129
|
| $decimal(value: string \| number \| Decimal.value) | Create a decimal value by [Decimal.js](https://mikemcl.github.io/decimal.js/). |
|
|
130
|
+
| $zstd(buffer: Buffer): Promise<string> | Decompress given buffer to string, using [zstd](https://developer.mozilla.org/en-US/docs/Glossary/Zstandard_compression). |
|
|
130
131
|
| $nano(size?: number) | Create a nano string. |
|
|
131
132
|
| $ascii(size?: number) | Create a nano string, only contains ascii characters (0-9, a-z, A-Z, _). |
|
|
132
133
|
| $error(options: PipelineStepErrorOptions) | Throw an exposed uncatchable error. |
|
package/index.cjs
CHANGED
|
@@ -5,6 +5,7 @@ var nanoid = require('nanoid');
|
|
|
5
5
|
var dayjs = require('dayjs');
|
|
6
6
|
var Decimal = require('decimal.js');
|
|
7
7
|
var mathjs$1 = require('mathjs');
|
|
8
|
+
var zstddec = require('zstddec');
|
|
8
9
|
|
|
9
10
|
const ERR_PIPELINE_NOT_FOUND = 'O01-00001';
|
|
10
11
|
const ERR_TRIM_NON_STRING = 'O01-00002';
|
|
@@ -623,6 +624,13 @@ const registerToStepHelpers = (helpers) => {
|
|
|
623
624
|
RegisteredHelpers.helpers = helpers ?? {};
|
|
624
625
|
};
|
|
625
626
|
const mathjs = mathjs$1.create(mathjs$1.all, { number: 'BigNumber', precision: 32 });
|
|
627
|
+
const removeTrailingZeros = (arr) => {
|
|
628
|
+
let i = arr.length;
|
|
629
|
+
while (i > 0 && arr[i - 1] === 0) {
|
|
630
|
+
i--;
|
|
631
|
+
}
|
|
632
|
+
return arr.slice(0, i);
|
|
633
|
+
};
|
|
626
634
|
const createStepHelpers = (config, logger) => {
|
|
627
635
|
const helpers = {
|
|
628
636
|
...RegisteredHelpers.helpers,
|
|
@@ -630,6 +638,12 @@ const createStepHelpers = (config, logger) => {
|
|
|
630
638
|
$date: new PipelineStepDateHelper(config),
|
|
631
639
|
$math: mathjs,
|
|
632
640
|
$decimal: (value) => new Decimal(value),
|
|
641
|
+
$zstd: async (buffer) => {
|
|
642
|
+
const decoder = new zstddec.ZSTDDecoder();
|
|
643
|
+
await decoder.init();
|
|
644
|
+
const decompressedArray = decoder.decode(buffer);
|
|
645
|
+
return new TextDecoder().decode(removeTrailingZeros(decompressedArray));
|
|
646
|
+
},
|
|
633
647
|
$nano: exports.StepHelpersUtils.$nano, $ascii: exports.StepHelpersUtils.$ascii,
|
|
634
648
|
$error: exports.StepHelpersUtils.createExposedUncatchableError,
|
|
635
649
|
$errorCodes: ErrorCodes,
|
package/index.js
CHANGED
|
@@ -3,6 +3,7 @@ import { customAlphabet, nanoid } from 'nanoid';
|
|
|
3
3
|
import dayjs from 'dayjs';
|
|
4
4
|
import Decimal from 'decimal.js';
|
|
5
5
|
import { create, all } from 'mathjs';
|
|
6
|
+
import { ZSTDDecoder } from 'zstddec';
|
|
6
7
|
|
|
7
8
|
const ERR_PIPELINE_NOT_FOUND = 'O01-00001';
|
|
8
9
|
const ERR_TRIM_NON_STRING = 'O01-00002';
|
|
@@ -621,6 +622,13 @@ const registerToStepHelpers = (helpers) => {
|
|
|
621
622
|
RegisteredHelpers.helpers = helpers ?? {};
|
|
622
623
|
};
|
|
623
624
|
const mathjs = create(all, { number: 'BigNumber', precision: 32 });
|
|
625
|
+
const removeTrailingZeros = (arr) => {
|
|
626
|
+
let i = arr.length;
|
|
627
|
+
while (i > 0 && arr[i - 1] === 0) {
|
|
628
|
+
i--;
|
|
629
|
+
}
|
|
630
|
+
return arr.slice(0, i);
|
|
631
|
+
};
|
|
624
632
|
const createStepHelpers = (config, logger) => {
|
|
625
633
|
const helpers = {
|
|
626
634
|
...RegisteredHelpers.helpers,
|
|
@@ -628,6 +636,12 @@ const createStepHelpers = (config, logger) => {
|
|
|
628
636
|
$date: new PipelineStepDateHelper(config),
|
|
629
637
|
$math: mathjs,
|
|
630
638
|
$decimal: (value) => new Decimal(value),
|
|
639
|
+
$zstd: async (buffer) => {
|
|
640
|
+
const decoder = new ZSTDDecoder();
|
|
641
|
+
await decoder.init();
|
|
642
|
+
const decompressedArray = decoder.decode(buffer);
|
|
643
|
+
return new TextDecoder().decode(removeTrailingZeros(decompressedArray));
|
|
644
|
+
},
|
|
631
645
|
$nano: StepHelpersUtils.$nano, $ascii: StepHelpersUtils.$ascii,
|
|
632
646
|
$error: StepHelpersUtils.createExposedUncatchableError,
|
|
633
647
|
$errorCodes: ErrorCodes,
|
|
@@ -12,12 +12,14 @@ export declare class PipelineStepDateHelper {
|
|
|
12
12
|
}
|
|
13
13
|
export type PipelineStepMathHelper = MathJsInstance;
|
|
14
14
|
export type PipelineStepDecimalHelper = (value: Decimal.Value) => Decimal;
|
|
15
|
+
export type PipelineStepZStdHelper = (buffer: Buffer) => Promise<string>;
|
|
15
16
|
export interface PipelineStepHelpers extends IStepHelpersUtils {
|
|
16
17
|
$config?: Config;
|
|
17
18
|
$logger?: Logger;
|
|
18
19
|
$date: PipelineStepDateHelper;
|
|
19
20
|
$math: PipelineStepMathHelper;
|
|
20
21
|
$decimal: PipelineStepDecimalHelper;
|
|
22
|
+
$zstd: PipelineStepZStdHelper;
|
|
21
23
|
$error: (options: PipelineStepErrorOptions) => never;
|
|
22
24
|
$errorCodes: Readonly<Record<string, string>>;
|
|
23
25
|
[key: string]: any;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rainbow-o23/n1",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.58-alpha.2",
|
|
4
4
|
"description": "o23 interfaces",
|
|
5
5
|
"main": "index.cjs",
|
|
6
6
|
"module": "index.js",
|
|
@@ -25,7 +25,8 @@
|
|
|
25
25
|
"dayjs": "^1.11.13",
|
|
26
26
|
"decimal.js": "^10.4.3",
|
|
27
27
|
"mathjs": "^13.2.1",
|
|
28
|
-
"nanoid": "3.3.8"
|
|
28
|
+
"nanoid": "3.3.8",
|
|
29
|
+
"zstddec": "^0.1.0"
|
|
29
30
|
},
|
|
30
31
|
"devDependencies": {
|
|
31
32
|
"@babel/core": "^7.23.9",
|
package/rollup.config.base.js
CHANGED
|
@@ -25,7 +25,7 @@ export const buildConfig = (lint) => {
|
|
|
25
25
|
return ["dayjs/plugin/"].some(scope => id.startsWith(scope))
|
|
26
26
|
|| [
|
|
27
27
|
'@rainbow-n19/n1',
|
|
28
|
-
'nanoid', 'dayjs', 'mathjs', 'decimal.js'
|
|
28
|
+
'nanoid', 'dayjs', 'mathjs', 'decimal.js', "zstddec"
|
|
29
29
|
].includes(id);
|
|
30
30
|
}
|
|
31
31
|
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import dayjs from 'dayjs';
|
|
2
2
|
import Decimal from 'decimal.js';
|
|
3
3
|
import {all, create, MathJsInstance} from 'mathjs';
|
|
4
|
+
import {ZSTDDecoder} from 'zstddec';
|
|
4
5
|
import {Config, DateTime, ErrorCodes, Logger} from '../utils';
|
|
5
6
|
import {IStepHelpersUtils, PipelineStepErrorOptions, StepHelpersUtils} from './step-helpers-utils';
|
|
6
7
|
|
|
@@ -26,6 +27,7 @@ export class PipelineStepDateHelper {
|
|
|
26
27
|
|
|
27
28
|
export type PipelineStepMathHelper = MathJsInstance;
|
|
28
29
|
export type PipelineStepDecimalHelper = (value: Decimal.Value) => Decimal;
|
|
30
|
+
export type PipelineStepZStdHelper = (buffer: Buffer) => Promise<string>;
|
|
29
31
|
|
|
30
32
|
export interface PipelineStepHelpers extends IStepHelpersUtils {
|
|
31
33
|
$config?: Config;
|
|
@@ -34,6 +36,8 @@ export interface PipelineStepHelpers extends IStepHelpersUtils {
|
|
|
34
36
|
$math: PipelineStepMathHelper;
|
|
35
37
|
$decimal: PipelineStepDecimalHelper;
|
|
36
38
|
|
|
39
|
+
$zstd: PipelineStepZStdHelper;
|
|
40
|
+
|
|
37
41
|
/** create an exposed uncatchable error*/
|
|
38
42
|
$error: (options: PipelineStepErrorOptions) => never;
|
|
39
43
|
$errorCodes: Readonly<Record<string, string>>;
|
|
@@ -49,6 +53,14 @@ export const registerToStepHelpers = (helpers: Record<string, any>) => {
|
|
|
49
53
|
};
|
|
50
54
|
|
|
51
55
|
const mathjs = create(all, {number: 'BigNumber', precision: 32});
|
|
56
|
+
const removeTrailingZeros = (arr: Uint8Array): Uint8Array => {
|
|
57
|
+
let i = arr.length;
|
|
58
|
+
while (i > 0 && arr[i - 1] === 0) {
|
|
59
|
+
i--;
|
|
60
|
+
}
|
|
61
|
+
return arr.slice(0, i);
|
|
62
|
+
};
|
|
63
|
+
|
|
52
64
|
export const createStepHelpers = (config: Config, logger: Logger): Readonly<PipelineStepHelpers> => {
|
|
53
65
|
const helpers: PipelineStepHelpers = {
|
|
54
66
|
...RegisteredHelpers.helpers,
|
|
@@ -57,6 +69,12 @@ export const createStepHelpers = (config: Config, logger: Logger): Readonly<Pipe
|
|
|
57
69
|
$date: new PipelineStepDateHelper(config),
|
|
58
70
|
$math: mathjs,
|
|
59
71
|
$decimal: (value: Decimal.Value) => new Decimal(value),
|
|
72
|
+
$zstd: async (buffer: Buffer) => {
|
|
73
|
+
const decoder = new ZSTDDecoder();
|
|
74
|
+
await decoder.init();
|
|
75
|
+
const decompressedArray = decoder.decode(buffer);
|
|
76
|
+
return new TextDecoder().decode(removeTrailingZeros(decompressedArray));
|
|
77
|
+
},
|
|
60
78
|
// nano
|
|
61
79
|
$nano: StepHelpersUtils.$nano, $ascii: StepHelpersUtils.$ascii,
|
|
62
80
|
// errors
|