@innet/server 2.0.0-beta.1 → 2.0.0-beta.10
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 +385 -9
- package/handler/handler.d.ts +6 -9
- package/handler/handler.es6.js +3 -4
- package/handler/handler.js +2 -3
- package/hooks/index.d.ts +24 -23
- package/hooks/index.es6.js +24 -23
- package/hooks/index.js +24 -23
- package/hooks/useEffect/index.d.ts +1 -0
- package/hooks/useEffect/index.es6.js +1 -0
- package/hooks/useEffect/index.js +9 -0
- package/hooks/useEffect/useEffect.d.ts +2 -0
- package/hooks/useEffect/useEffect.es6.js +8 -0
- package/hooks/useEffect/useEffect.js +12 -0
- package/hooks/useHeaders/useHeaders.d.ts +0 -1
- package/hooks/useNewSchema/useNewSchema.es6.js +1 -1
- package/hooks/useNewSchema/useNewSchema.js +1 -1
- package/hooks/useRequest/useRequest.d.ts +0 -1
- package/hooks/useResponse/useResponse.d.ts +0 -1
- package/hooks/useSchemaType/useSchemaType.es6.js +17 -9
- package/hooks/useSchemaType/useSchemaType.js +17 -9
- package/hooks/useServer/useServer.d.ts +0 -2
- package/index.d.ts +2 -2
- package/index.es6.js +88 -86
- package/index.js +201 -194
- package/package.json +16 -15
- package/plugins/handler/serverFn/serverFn.es6.js +2 -2
- package/plugins/handler/serverFn/serverFn.js +2 -6
- package/plugins/index.d.ts +2 -2
- package/plugins/index.es6.js +2 -2
- package/plugins/index.js +2 -2
- package/plugins/main/api/api.es6.js +74 -74
- package/plugins/main/api/api.js +75 -79
- package/plugins/main/body/body.es6.js +4 -4
- package/plugins/main/body/body.js +4 -8
- package/plugins/main/endpoint/endpoint.d.ts +5 -0
- package/plugins/main/endpoint/endpoint.es6.js +5 -5
- package/plugins/main/endpoint/endpoint.js +5 -9
- package/plugins/main/host/host.es6.js +4 -2
- package/plugins/main/host/host.js +4 -6
- package/plugins/main/index.d.ts +8 -8
- package/plugins/main/index.es6.js +8 -8
- package/plugins/main/index.js +8 -8
- package/plugins/main/param/param.es6.js +3 -4
- package/plugins/main/param/param.js +3 -8
- package/plugins/main/preset/preset.es6.js +1 -1
- package/plugins/main/preset/preset.js +1 -5
- package/plugins/main/response/response.es6.js +11 -4
- package/plugins/main/response/response.js +11 -8
- package/plugins/main/server/server.d.ts +0 -1
- package/plugins/main/server/server.es6.js +7 -10
- package/plugins/main/server/server.js +8 -12
- package/plugins/main/tag/index.es6.js +1 -1
- package/plugins/main/tag/index.js +1 -0
- package/plugins/main/tag/tag.d.ts +8 -1
- package/plugins/main/tag/tag.es6.js +20 -3
- package/plugins/main/tag/tag.js +20 -6
- package/plugins/main/variable/variable.es6.js +3 -4
- package/plugins/main/variable/variable.js +3 -4
- package/plugins/request/cms/cms.es6.js +1 -1
- package/plugins/request/cms/cms.js +2 -3
- package/plugins/request/cookie/cookie.d.ts +2 -2
- package/plugins/request/cookie/cookie.es6.js +1 -2
- package/plugins/request/cookie/cookie.js +1 -2
- package/plugins/request/error/error.es6.js +1 -2
- package/plugins/request/error/error.js +1 -2
- package/plugins/request/file/file.es6.js +2 -3
- package/plugins/request/file/file.js +2 -4
- package/plugins/request/index.d.ts +5 -5
- package/plugins/request/index.es6.js +5 -5
- package/plugins/request/index.js +5 -5
- package/plugins/request/proxy/proxy.d.ts +0 -1
- package/plugins/schema/array/array.d.ts +3 -0
- package/plugins/schema/array/array.es6.js +14 -6
- package/plugins/schema/array/array.js +15 -11
- package/plugins/schema/binary/binary.d.ts +4 -0
- package/plugins/schema/boolean/boolean.d.ts +1 -0
- package/plugins/schema/date/date.d.ts +2 -1
- package/plugins/schema/date/date.es6.js +8 -4
- package/plugins/schema/date/date.js +8 -4
- package/plugins/schema/field/field.d.ts +4 -0
- package/plugins/schema/field/field.es6.js +16 -3
- package/plugins/schema/field/field.js +16 -7
- package/plugins/schema/index.d.ts +8 -8
- package/plugins/schema/index.es6.js +8 -8
- package/plugins/schema/index.js +8 -8
- package/plugins/schema/integer/integer.d.ts +37 -0
- package/plugins/schema/integer/integer.es6.js +29 -9
- package/plugins/schema/integer/integer.js +29 -9
- package/plugins/schema/number/number.d.ts +32 -0
- package/plugins/schema/number/number.es6.js +21 -6
- package/plugins/schema/number/number.js +21 -6
- package/plugins/schema/object/object.es6.js +9 -8
- package/plugins/schema/object/object.js +9 -12
- package/plugins/schema/string/string.d.ts +27 -0
- package/plugins/schema/string/string.es6.js +9 -4
- package/plugins/schema/string/string.js +9 -4
- package/plugins/schema/tuple/tuple.es6.js +5 -6
- package/plugins/schema/tuple/tuple.js +5 -10
- package/plugins/schema/uuid/uuid.es6.js +5 -3
- package/plugins/schema/uuid/uuid.js +5 -3
- package/plugins/utils/dts/dts.es6.js +5 -2
- package/plugins/utils/dts/dts.js +5 -2
- package/plugins/utils/env/env.es6.js +1 -1
- package/plugins/utils/env/env.js +1 -5
- package/plugins/utils/index.d.ts +3 -2
- package/plugins/utils/index.es6.js +3 -2
- package/plugins/utils/index.js +3 -2
- package/plugins/utils/swagger/swagger.d.ts +1 -0
- package/plugins/utils/swagger/swagger.es6.js +1 -0
- package/plugins/utils/swagger/swagger.js +1 -0
- package/plugins/utils/ui/index.d.ts +1 -0
- package/plugins/utils/ui/index.es6.js +1 -0
- package/plugins/utils/ui/index.js +10 -0
- package/plugins/utils/ui/rapidoc.html.es6.js +3 -0
- package/plugins/utils/ui/rapidoc.html.js +7 -0
- package/plugins/utils/ui/redoc.html.es6.js +3 -0
- package/plugins/utils/ui/redoc.html.js +7 -0
- package/plugins/utils/ui/scalar.html.es6.js +3 -0
- package/plugins/utils/ui/scalar.html.js +7 -0
- package/plugins/utils/ui/swagger.html.es6.js +3 -0
- package/plugins/utils/ui/swagger.html.js +7 -0
- package/plugins/utils/ui/ui.d.ts +13 -0
- package/plugins/utils/ui/ui.es6.js +45 -0
- package/plugins/utils/ui/ui.js +50 -0
- package/types.d.ts +6 -0
- package/utils/action/Action.d.ts +4 -5
- package/utils/action/Action.es6.js +14 -16
- package/utils/action/Action.js +13 -15
- package/utils/getSafeSchema/getSafeSchema.d.ts +2 -0
- package/utils/getSafeSchema/getSafeSchema.es6.js +5 -0
- package/utils/getSafeSchema/getSafeSchema.js +9 -0
- package/utils/getSafeSchema/index.d.ts +1 -0
- package/utils/getSafeSchema/index.es6.js +1 -0
- package/utils/getSafeSchema/index.js +9 -0
- package/utils/index.d.ts +9 -8
- package/utils/index.es6.js +9 -8
- package/utils/index.js +9 -8
- package/utils/parseBody/parseBody.d.ts +0 -1
- package/utils/parseBody/parseBody.es6.js +13 -16
- package/utils/parseBody/parseBody.js +13 -16
- package/utils/parseFormBody/parseFormBody.d.ts +0 -1
- package/utils/parseFormBody/parseFormBody.es6.js +41 -41
- package/utils/parseFormBody/parseFormBody.js +41 -41
- package/utils/parseSearch/parseSearch.es6.js +4 -1
- package/utils/parseSearch/parseSearch.js +4 -1
- package/utils/rules/arrayOf/arrayOf.es6.js +1 -1
- package/utils/rules/arrayOf/arrayOf.js +1 -1
- package/utils/rules/bin/bin.es6.js +4 -1
- package/utils/rules/bin/bin.js +4 -1
- package/utils/rules/binaryAccept/binaryAccept.es6.js +5 -2
- package/utils/rules/binaryAccept/binaryAccept.js +5 -2
- package/utils/rules/dateTo/dateTo.es6.js +4 -1
- package/utils/rules/dateTo/dateTo.js +4 -1
- package/utils/rules/helpers.es6.js +4 -1
- package/utils/rules/helpers.js +4 -1
- package/utils/rules/index.d.ts +17 -17
- package/utils/rules/index.es6.js +17 -17
- package/utils/rules/index.js +18 -18
- package/utils/rules/int/int.es6.js +17 -4
- package/utils/rules/int/int.js +17 -4
- package/utils/rules/max/max.es6.js +9 -3
- package/utils/rules/max/max.js +9 -3
- package/utils/rules/maxBin/maxBin.es6.js +5 -2
- package/utils/rules/maxBin/maxBin.js +5 -2
- package/utils/rules/maxDate/maxDate.es6.js +5 -1
- package/utils/rules/maxDate/maxDate.js +5 -1
- package/utils/rules/maxLength/maxLength.es6.js +5 -2
- package/utils/rules/maxLength/maxLength.js +5 -2
- package/utils/rules/min/min.es6.js +9 -3
- package/utils/rules/min/min.js +9 -3
- package/utils/rules/minBin/minBin.es6.js +5 -2
- package/utils/rules/minBin/minBin.js +5 -2
- package/utils/rules/minDate/minDate.es6.js +5 -1
- package/utils/rules/minDate/minDate.js +5 -1
- package/utils/rules/minLength/minLength.es6.js +5 -2
- package/utils/rules/minLength/minLength.js +5 -2
- package/utils/rules/num/num.es6.js +4 -1
- package/utils/rules/num/num.js +4 -1
- package/utils/rules/objectOf/objectOf.es6.js +6 -3
- package/utils/rules/objectOf/objectOf.js +6 -3
- package/utils/rules/pattern/pattern.es6.js +6 -2
- package/utils/rules/pattern/pattern.js +6 -2
- package/utils/rules/tupleOf/tupleOf.es6.js +1 -1
- package/utils/rules/tupleOf/tupleOf.js +1 -1
- package/utils/rules/values/values.es6.js +5 -2
- package/utils/rules/values/values.js +5 -2
- package/utils/stringifySearch/stringifySearch.es6.js +4 -1
- package/utils/stringifySearch/stringifySearch.js +4 -1
- package/_virtual/_rollup-plugin-process-env.es6.js +0 -10
- package/_virtual/_rollup-plugin-process-env.js +0 -12
|
@@ -1,9 +1,41 @@
|
|
|
1
1
|
import { type HandlerPlugin } from 'innet';
|
|
2
2
|
import { type ValuesSchemaProps } from '../../../types';
|
|
3
3
|
export interface NumberProps extends ValuesSchemaProps<number> {
|
|
4
|
+
/**
|
|
5
|
+
* The `exclusiveMaximum` keyword is used to restrict the value to be less than the specified number.
|
|
6
|
+
* @example For example, the following value is valid:
|
|
7
|
+
* ```tsx
|
|
8
|
+
* <number exclusiveMaximum={10} />
|
|
9
|
+
* ```
|
|
10
|
+
* @see https://swagger.io/docs/specification/v3_0/data-models/data-types/#numbers
|
|
11
|
+
* */
|
|
12
|
+
exclusiveMaximum?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* The `exclusiveMinimum` keyword is used to restrict the value to be greater than the specified number.
|
|
15
|
+
* @example For example, the following value is valid:
|
|
16
|
+
* ```tsx
|
|
17
|
+
* <number exclusiveMinimum={10} />
|
|
18
|
+
* ```
|
|
19
|
+
* @see https://swagger.io/docs/specification/v3_0/data-models/data-types/#numbers
|
|
20
|
+
* */
|
|
21
|
+
exclusiveMinimum?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* An optional format modifier serves as a hint at the contents and format of the string.
|
|
24
|
+
* @see https://swagger.io/docs/specification/v3_0/data-models/data-types/#numbers
|
|
25
|
+
* */
|
|
26
|
+
format?: 'double' | 'float' | (string & {});
|
|
4
27
|
/** Validate the number value by maximum. */
|
|
5
28
|
max?: number;
|
|
6
29
|
/** Validate the number value by minimum. */
|
|
7
30
|
min?: number;
|
|
31
|
+
/**
|
|
32
|
+
* The `multipleOf` keyword is used to restrict the value to be a multiple of the specified number.
|
|
33
|
+
* @example For example, the following value is valid:
|
|
34
|
+
* ```tsx
|
|
35
|
+
* <number multipleOf={2} />
|
|
36
|
+
* ```
|
|
37
|
+
* @see https://swagger.io/docs/specification/v3_0/data-models/data-types/#numbers
|
|
38
|
+
* */
|
|
39
|
+
multipleOf?: number;
|
|
8
40
|
}
|
|
9
41
|
export declare const number: HandlerPlugin;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { __rest } from 'tslib';
|
|
2
1
|
import { useProps } from '@innet/jsx';
|
|
3
2
|
import '../../../hooks/index.es6.js';
|
|
4
3
|
import '../../../hooks/useParentRule/index.es6.js';
|
|
@@ -14,12 +13,28 @@ import { useRule } from '../../../hooks/useRule/useRule.es6.js';
|
|
|
14
13
|
import { pipe } from '../../../utils/rules/pipe/pipe.es6.js';
|
|
15
14
|
|
|
16
15
|
const number = () => {
|
|
17
|
-
const
|
|
16
|
+
const { exclusiveMaximum, exclusiveMinimum, format, max: max$1, min: min$1, multipleOf, ...props } = useProps() || {};
|
|
18
17
|
const schema = useSchemaType('number', props);
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
if (schema) {
|
|
19
|
+
if (format !== undefined) {
|
|
20
|
+
schema.format = format;
|
|
21
|
+
}
|
|
22
|
+
if (min$1 !== undefined) {
|
|
23
|
+
schema.minimum = min$1;
|
|
24
|
+
}
|
|
25
|
+
if (max$1 !== undefined) {
|
|
26
|
+
schema.maximum = max$1;
|
|
27
|
+
}
|
|
28
|
+
if (exclusiveMinimum) {
|
|
29
|
+
schema.exclusiveMinimum = typeof exclusiveMinimum === 'boolean' ? exclusiveMinimum : Number(exclusiveMinimum);
|
|
30
|
+
}
|
|
31
|
+
if (exclusiveMaximum) {
|
|
32
|
+
schema.exclusiveMaximum = typeof exclusiveMaximum === 'boolean' ? exclusiveMaximum : Number(exclusiveMaximum);
|
|
33
|
+
}
|
|
34
|
+
if (multipleOf !== undefined) {
|
|
35
|
+
schema.multipleOf = Number(multipleOf);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
23
38
|
const rules = [];
|
|
24
39
|
if (props.default !== undefined) {
|
|
25
40
|
rules.push(defaultTo(props.default));
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var tslib = require('tslib');
|
|
6
5
|
var jsx = require('@innet/jsx');
|
|
7
6
|
require('../../../hooks/index.js');
|
|
8
7
|
require('../../../hooks/useParentRule/index.js');
|
|
@@ -18,12 +17,28 @@ var useRule = require('../../../hooks/useRule/useRule.js');
|
|
|
18
17
|
var pipe = require('../../../utils/rules/pipe/pipe.js');
|
|
19
18
|
|
|
20
19
|
const number = () => {
|
|
21
|
-
const
|
|
20
|
+
const { exclusiveMaximum, exclusiveMinimum, format, max: max$1, min: min$1, multipleOf, ...props } = jsx.useProps() || {};
|
|
22
21
|
const schema = useSchemaType.useSchemaType('number', props);
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
if (schema) {
|
|
23
|
+
if (format !== undefined) {
|
|
24
|
+
schema.format = format;
|
|
25
|
+
}
|
|
26
|
+
if (min$1 !== undefined) {
|
|
27
|
+
schema.minimum = min$1;
|
|
28
|
+
}
|
|
29
|
+
if (max$1 !== undefined) {
|
|
30
|
+
schema.maximum = max$1;
|
|
31
|
+
}
|
|
32
|
+
if (exclusiveMinimum) {
|
|
33
|
+
schema.exclusiveMinimum = typeof exclusiveMinimum === 'boolean' ? exclusiveMinimum : Number(exclusiveMinimum);
|
|
34
|
+
}
|
|
35
|
+
if (exclusiveMaximum) {
|
|
36
|
+
schema.exclusiveMaximum = typeof exclusiveMaximum === 'boolean' ? exclusiveMaximum : Number(exclusiveMaximum);
|
|
37
|
+
}
|
|
38
|
+
if (multipleOf !== undefined) {
|
|
39
|
+
schema.multipleOf = Number(multipleOf);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
27
42
|
const rules = [];
|
|
28
43
|
if (props.default !== undefined) {
|
|
29
44
|
rules.push(defaultTo.defaultTo(props.default));
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import innet, { useNewHandler } from 'innet';
|
|
1
|
+
import { useNewHandler, innet } from 'innet';
|
|
3
2
|
import { useProps } from '@innet/jsx';
|
|
4
|
-
import { callHandler } from '@innet/utils';
|
|
5
3
|
import '../../../hooks/index.es6.js';
|
|
6
4
|
import '../../../hooks/useParentRule/index.es6.js';
|
|
7
5
|
import '../../../utils/index.es6.js';
|
|
@@ -16,10 +14,12 @@ import { objectOf } from '../../../utils/rules/objectOf/objectOf.es6.js';
|
|
|
16
14
|
import { pipe } from '../../../utils/rules/pipe/pipe.es6.js';
|
|
17
15
|
import { useRule, ruleContext } from '../../../hooks/useRule/useRule.es6.js';
|
|
18
16
|
import { objectRuleContext } from '../../../hooks/useObjectRule/useObjectRule.es6.js';
|
|
17
|
+
import { useEffect } from '../../../hooks/useEffect/useEffect.es6.js';
|
|
18
|
+
import { getSafeSchema } from '../../../utils/getSafeSchema/getSafeSchema.es6.js';
|
|
19
19
|
|
|
20
20
|
const object = () => {
|
|
21
21
|
useBlock('path');
|
|
22
|
-
const
|
|
22
|
+
const { children, ...props } = useProps();
|
|
23
23
|
const { refRules } = useApi();
|
|
24
24
|
const schema = useSchemaType('object', props);
|
|
25
25
|
const handler = useNewHandler();
|
|
@@ -53,11 +53,12 @@ const object = () => {
|
|
|
53
53
|
});
|
|
54
54
|
parentRuleContext.reset(handler);
|
|
55
55
|
innet(children, handler);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
useEffect(() => {
|
|
57
|
+
const safeSchema = getSafeSchema(schema);
|
|
58
|
+
if (!Object.keys(safeSchema.additionalProperties).length) {
|
|
59
|
+
delete safeSchema.additionalProperties;
|
|
59
60
|
}
|
|
60
|
-
}
|
|
61
|
+
});
|
|
61
62
|
}
|
|
62
63
|
else if (props.ref) {
|
|
63
64
|
useRule(refRules[props.ref]);
|
|
@@ -2,10 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var tslib = require('tslib');
|
|
6
5
|
var innet = require('innet');
|
|
7
6
|
var jsx = require('@innet/jsx');
|
|
8
|
-
var utils = require('@innet/utils');
|
|
9
7
|
require('../../../hooks/index.js');
|
|
10
8
|
require('../../../hooks/useParentRule/index.js');
|
|
11
9
|
require('../../../utils/index.js');
|
|
@@ -20,14 +18,12 @@ var objectOf = require('../../../utils/rules/objectOf/objectOf.js');
|
|
|
20
18
|
var pipe = require('../../../utils/rules/pipe/pipe.js');
|
|
21
19
|
var useRule = require('../../../hooks/useRule/useRule.js');
|
|
22
20
|
var useObjectRule = require('../../../hooks/useObjectRule/useObjectRule.js');
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
var innet__default = /*#__PURE__*/_interopDefaultLegacy(innet);
|
|
21
|
+
var useEffect = require('../../../hooks/useEffect/useEffect.js');
|
|
22
|
+
var getSafeSchema = require('../../../utils/getSafeSchema/getSafeSchema.js');
|
|
27
23
|
|
|
28
24
|
const object = () => {
|
|
29
25
|
useBlock.useBlock('path');
|
|
30
|
-
const
|
|
26
|
+
const { children, ...props } = jsx.useProps();
|
|
31
27
|
const { refRules } = useApi.useApi();
|
|
32
28
|
const schema = useSchemaType.useSchemaType('object', props);
|
|
33
29
|
const handler = innet.useNewHandler();
|
|
@@ -60,12 +56,13 @@ const object = () => {
|
|
|
60
56
|
childRule = rule;
|
|
61
57
|
});
|
|
62
58
|
useParentRule.parentRuleContext.reset(handler);
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
59
|
+
innet.innet(children, handler);
|
|
60
|
+
useEffect.useEffect(() => {
|
|
61
|
+
const safeSchema = getSafeSchema.getSafeSchema(schema);
|
|
62
|
+
if (!Object.keys(safeSchema.additionalProperties).length) {
|
|
63
|
+
delete safeSchema.additionalProperties;
|
|
67
64
|
}
|
|
68
|
-
}
|
|
65
|
+
});
|
|
69
66
|
}
|
|
70
67
|
else if (props.ref) {
|
|
71
68
|
useRule.useRule(refRules[props.ref]);
|
|
@@ -1,9 +1,36 @@
|
|
|
1
1
|
import { type HandlerPlugin } from 'innet';
|
|
2
2
|
import { type ValuesSchemaProps } from '../../../types';
|
|
3
3
|
export interface StringProps extends ValuesSchemaProps<string> {
|
|
4
|
+
/**
|
|
5
|
+
* An optional format modifier serves as a hint at the contents and format of the string.
|
|
6
|
+
* @see https://swagger.io/docs/specification/v3_0/data-models/data-types/#strings
|
|
7
|
+
* */
|
|
8
|
+
format?: 'binary' | 'byte' | 'date' | 'date-time' | 'email' | 'hostname' | 'ipv4' | 'ipv6' | 'password' | 'uri' | 'uuid' | (string & {});
|
|
9
|
+
/**
|
|
10
|
+
* String length can be restricted using `min` and `max`.
|
|
11
|
+
* @see https://swagger.io/docs/specification/v3_0/data-models/data-types/#strings
|
|
12
|
+
* */
|
|
4
13
|
max?: number;
|
|
14
|
+
/**
|
|
15
|
+
* String length can be restricted using `min` and `max`.
|
|
16
|
+
* @see https://swagger.io/docs/specification/v3_0/data-models/data-types/#strings
|
|
17
|
+
* */
|
|
5
18
|
min?: number;
|
|
19
|
+
/**
|
|
20
|
+
* The pattern keyword lets you define a regular expression template for the string value.
|
|
21
|
+
* Only the values that match this template will be accepted.
|
|
22
|
+
* The regular expression syntax used is from JavaScript (more specifically, ECMA 262).
|
|
23
|
+
* Regular expressions are case-sensitive, that is, [a-z] and [A-Z] are different expressions.
|
|
24
|
+
* @example For example, the following pattern matches a Social Security Number (SSN) in the 123-45-6789 format:
|
|
25
|
+
* ```tsx
|
|
26
|
+
* <string pattern='^\d{3}-\d{2}-\d{4}$' />
|
|
27
|
+
* ```
|
|
28
|
+
* @see https://swagger.io/docs/specification/v3_0/data-models/data-types/#strings
|
|
29
|
+
* */
|
|
6
30
|
pattern?: RegExp | string;
|
|
31
|
+
/**
|
|
32
|
+
* The `patternId` keyword is used to reference a pattern from the OpenAPI specification.
|
|
33
|
+
* */
|
|
7
34
|
patternId?: string;
|
|
8
35
|
}
|
|
9
36
|
export declare const string: HandlerPlugin;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { __rest } from 'tslib';
|
|
2
1
|
import { useProps } from '@innet/jsx';
|
|
3
2
|
import '../../../hooks/index.es6.js';
|
|
4
3
|
import '../../../hooks/useParentRule/index.es6.js';
|
|
@@ -15,11 +14,14 @@ import { useRule } from '../../../hooks/useRule/useRule.es6.js';
|
|
|
15
14
|
import { useParentRule } from '../../../hooks/useParentRule/useParentRule.es6.js';
|
|
16
15
|
|
|
17
16
|
const string = () => {
|
|
18
|
-
const
|
|
17
|
+
const { format, max, min, pattern: pattern$1, patternId, ...props } = useProps() || {};
|
|
19
18
|
const { refRules } = useApi();
|
|
20
19
|
const schema = useSchemaType('string', props);
|
|
21
20
|
if (schema) {
|
|
22
21
|
const rules = [];
|
|
22
|
+
if (format !== undefined) {
|
|
23
|
+
schema.format = format;
|
|
24
|
+
}
|
|
23
25
|
if (props.default !== undefined) {
|
|
24
26
|
rules.push(defaultTo(props.default));
|
|
25
27
|
}
|
|
@@ -27,12 +29,15 @@ const string = () => {
|
|
|
27
29
|
if (props.values) {
|
|
28
30
|
rules.push(values(props.values));
|
|
29
31
|
}
|
|
32
|
+
if (format !== undefined) {
|
|
33
|
+
schema.format = format;
|
|
34
|
+
}
|
|
30
35
|
if (min !== undefined) {
|
|
31
|
-
schema.
|
|
36
|
+
schema.minLength = min;
|
|
32
37
|
rules.push(minLength(min));
|
|
33
38
|
}
|
|
34
39
|
if (max !== undefined) {
|
|
35
|
-
schema.
|
|
40
|
+
schema.maxLength = max;
|
|
36
41
|
rules.push(maxLength(max));
|
|
37
42
|
}
|
|
38
43
|
if (pattern$1 !== undefined) {
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var tslib = require('tslib');
|
|
6
5
|
var jsx = require('@innet/jsx');
|
|
7
6
|
require('../../../hooks/index.js');
|
|
8
7
|
require('../../../hooks/useParentRule/index.js');
|
|
@@ -19,11 +18,14 @@ var useRule = require('../../../hooks/useRule/useRule.js');
|
|
|
19
18
|
var useParentRule = require('../../../hooks/useParentRule/useParentRule.js');
|
|
20
19
|
|
|
21
20
|
const string = () => {
|
|
22
|
-
const
|
|
21
|
+
const { format, max, min, pattern: pattern$1, patternId, ...props } = jsx.useProps() || {};
|
|
23
22
|
const { refRules } = useApi.useApi();
|
|
24
23
|
const schema = useSchemaType.useSchemaType('string', props);
|
|
25
24
|
if (schema) {
|
|
26
25
|
const rules = [];
|
|
26
|
+
if (format !== undefined) {
|
|
27
|
+
schema.format = format;
|
|
28
|
+
}
|
|
27
29
|
if (props.default !== undefined) {
|
|
28
30
|
rules.push(defaultTo.defaultTo(props.default));
|
|
29
31
|
}
|
|
@@ -31,12 +33,15 @@ const string = () => {
|
|
|
31
33
|
if (props.values) {
|
|
32
34
|
rules.push(values.values(props.values));
|
|
33
35
|
}
|
|
36
|
+
if (format !== undefined) {
|
|
37
|
+
schema.format = format;
|
|
38
|
+
}
|
|
34
39
|
if (min !== undefined) {
|
|
35
|
-
schema.
|
|
40
|
+
schema.minLength = min;
|
|
36
41
|
rules.push(minLength.minLength(min));
|
|
37
42
|
}
|
|
38
43
|
if (max !== undefined) {
|
|
39
|
-
schema.
|
|
44
|
+
schema.maxLength = max;
|
|
40
45
|
rules.push(maxLength.maxLength(max));
|
|
41
46
|
}
|
|
42
47
|
if (pattern$1 !== undefined) {
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import innet, { useNewHandler } from 'innet';
|
|
1
|
+
import { useNewHandler, innet } from 'innet';
|
|
3
2
|
import { useProps } from '@innet/jsx';
|
|
4
|
-
import { callHandler } from '@innet/utils';
|
|
5
3
|
import '../../../hooks/index.es6.js';
|
|
6
4
|
import '../../../hooks/useParentRule/index.es6.js';
|
|
7
5
|
import '../../../utils/index.es6.js';
|
|
@@ -14,11 +12,12 @@ import { useParentRule, parentRuleContext } from '../../../hooks/useParentRule/u
|
|
|
14
12
|
import { useRule, ruleContext } from '../../../hooks/useRule/useRule.es6.js';
|
|
15
13
|
import { pipe } from '../../../utils/rules/pipe/pipe.es6.js';
|
|
16
14
|
import { required } from '../../../utils/rules/required/required.es6.js';
|
|
15
|
+
import { useEffect } from '../../../hooks/useEffect/useEffect.es6.js';
|
|
17
16
|
|
|
18
17
|
const tuple = () => {
|
|
19
18
|
useBlock('path');
|
|
20
19
|
const handler = useNewHandler();
|
|
21
|
-
const
|
|
20
|
+
const { children, ...props } = useProps();
|
|
22
21
|
const schema = useSchemaType('array', props);
|
|
23
22
|
if (schema) {
|
|
24
23
|
const schemas = [];
|
|
@@ -43,11 +42,11 @@ const tuple = () => {
|
|
|
43
42
|
rulesMap.push(rule);
|
|
44
43
|
});
|
|
45
44
|
innet(children, handler);
|
|
46
|
-
|
|
45
|
+
useEffect(() => {
|
|
47
46
|
if (!rulesMap.length) {
|
|
48
47
|
throw Error('<tuple> MUST have content');
|
|
49
48
|
}
|
|
50
|
-
}
|
|
49
|
+
});
|
|
51
50
|
}
|
|
52
51
|
};
|
|
53
52
|
|
|
@@ -2,10 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var tslib = require('tslib');
|
|
6
5
|
var innet = require('innet');
|
|
7
6
|
var jsx = require('@innet/jsx');
|
|
8
|
-
var utils = require('@innet/utils');
|
|
9
7
|
require('../../../hooks/index.js');
|
|
10
8
|
require('../../../hooks/useParentRule/index.js');
|
|
11
9
|
require('../../../utils/index.js');
|
|
@@ -18,15 +16,12 @@ var useParentRule = require('../../../hooks/useParentRule/useParentRule.js');
|
|
|
18
16
|
var useRule = require('../../../hooks/useRule/useRule.js');
|
|
19
17
|
var pipe = require('../../../utils/rules/pipe/pipe.js');
|
|
20
18
|
var required = require('../../../utils/rules/required/required.js');
|
|
21
|
-
|
|
22
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
23
|
-
|
|
24
|
-
var innet__default = /*#__PURE__*/_interopDefaultLegacy(innet);
|
|
19
|
+
var useEffect = require('../../../hooks/useEffect/useEffect.js');
|
|
25
20
|
|
|
26
21
|
const tuple = () => {
|
|
27
22
|
useBlock.useBlock('path');
|
|
28
23
|
const handler = innet.useNewHandler();
|
|
29
|
-
const
|
|
24
|
+
const { children, ...props } = jsx.useProps();
|
|
30
25
|
const schema = useSchemaType.useSchemaType('array', props);
|
|
31
26
|
if (schema) {
|
|
32
27
|
const schemas = [];
|
|
@@ -50,12 +45,12 @@ const tuple = () => {
|
|
|
50
45
|
useRule.ruleContext.set(handler, rule => {
|
|
51
46
|
rulesMap.push(rule);
|
|
52
47
|
});
|
|
53
|
-
|
|
54
|
-
|
|
48
|
+
innet.innet(children, handler);
|
|
49
|
+
useEffect.useEffect(() => {
|
|
55
50
|
if (!rulesMap.length) {
|
|
56
51
|
throw Error('<tuple> MUST have content');
|
|
57
52
|
}
|
|
58
|
-
}
|
|
53
|
+
});
|
|
59
54
|
}
|
|
60
55
|
};
|
|
61
56
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { __rest } from 'tslib';
|
|
2
1
|
import { useProps } from '@innet/jsx';
|
|
3
2
|
import { v4 } from 'uuid';
|
|
4
3
|
import '../../../hooks/index.es6.js';
|
|
@@ -12,8 +11,11 @@ import { optional } from '../../../utils/rules/optional/optional.es6.js';
|
|
|
12
11
|
import { pipe } from '../../../utils/rules/pipe/pipe.es6.js';
|
|
13
12
|
|
|
14
13
|
const uuid = () => {
|
|
15
|
-
const
|
|
16
|
-
const schema = useSchemaType('string',
|
|
14
|
+
const { default: defaultValue, ...props } = useProps();
|
|
15
|
+
const schema = useSchemaType('string', {
|
|
16
|
+
...props,
|
|
17
|
+
default: defaultValue === 'new' ? undefined : defaultValue,
|
|
18
|
+
});
|
|
17
19
|
// @ts-expect-error: FIXME
|
|
18
20
|
schema.format = 'uuid';
|
|
19
21
|
if (defaultValue === 'new') {
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var tslib = require('tslib');
|
|
6
5
|
var jsx = require('@innet/jsx');
|
|
7
6
|
var uuid$1 = require('uuid');
|
|
8
7
|
require('../../../hooks/index.js');
|
|
@@ -16,8 +15,11 @@ var optional = require('../../../utils/rules/optional/optional.js');
|
|
|
16
15
|
var pipe = require('../../../utils/rules/pipe/pipe.js');
|
|
17
16
|
|
|
18
17
|
const uuid = () => {
|
|
19
|
-
const
|
|
20
|
-
const schema = useSchemaType.useSchemaType('string',
|
|
18
|
+
const { default: defaultValue, ...props } = jsx.useProps();
|
|
19
|
+
const schema = useSchemaType.useSchemaType('string', {
|
|
20
|
+
...props,
|
|
21
|
+
default: defaultValue === 'new' ? undefined : defaultValue,
|
|
22
|
+
});
|
|
21
23
|
// @ts-expect-error: FIXME
|
|
22
24
|
schema.format = 'uuid';
|
|
23
25
|
if (defaultValue === 'new') {
|
|
@@ -3,13 +3,16 @@ import { promises } from 'node:fs';
|
|
|
3
3
|
import '../../../hooks/index.es6.js';
|
|
4
4
|
import '../../../utils/index.es6.js';
|
|
5
5
|
import { useApi } from '../../../hooks/useApi/useApi.es6.js';
|
|
6
|
+
import { useEffect } from '../../../hooks/useEffect/useEffect.es6.js';
|
|
6
7
|
import { generateTypes } from '../../../utils/generateTypes/generateTypes.es6.js';
|
|
7
8
|
|
|
8
9
|
const dts = () => {
|
|
9
10
|
const { namespace = process.env.INNET_DTS_NAMESPACE, path = process.env.INNET_DTS_PATH || 'src/apiTypes.d.ts', } = useProps() || {};
|
|
10
11
|
const { docs } = useApi();
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
promises.writeFile(path, generateTypes(docs, namespace)).catch(e => {
|
|
14
|
+
console.error(e);
|
|
15
|
+
});
|
|
13
16
|
});
|
|
14
17
|
};
|
|
15
18
|
|
package/plugins/utils/dts/dts.js
CHANGED
|
@@ -7,13 +7,16 @@ var fs = require('node:fs');
|
|
|
7
7
|
require('../../../hooks/index.js');
|
|
8
8
|
require('../../../utils/index.js');
|
|
9
9
|
var useApi = require('../../../hooks/useApi/useApi.js');
|
|
10
|
+
var useEffect = require('../../../hooks/useEffect/useEffect.js');
|
|
10
11
|
var generateTypes = require('../../../utils/generateTypes/generateTypes.js');
|
|
11
12
|
|
|
12
13
|
const dts = () => {
|
|
13
14
|
const { namespace = process.env.INNET_DTS_NAMESPACE, path = process.env.INNET_DTS_PATH || 'src/apiTypes.d.ts', } = jsx.useProps() || {};
|
|
14
15
|
const { docs } = useApi.useApi();
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
useEffect.useEffect(() => {
|
|
17
|
+
fs.promises.writeFile(path, generateTypes.generateTypes(docs, namespace)).catch(e => {
|
|
18
|
+
console.error(e);
|
|
19
|
+
});
|
|
17
20
|
});
|
|
18
21
|
};
|
|
19
22
|
|
package/plugins/utils/env/env.js
CHANGED
|
@@ -5,14 +5,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var innet = require('innet');
|
|
6
6
|
var jsx = require('@innet/jsx');
|
|
7
7
|
|
|
8
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
9
|
-
|
|
10
|
-
var innet__default = /*#__PURE__*/_interopDefaultLegacy(innet);
|
|
11
|
-
|
|
12
8
|
const env = () => {
|
|
13
9
|
const { children, is, of = 'NODE_ENV', } = jsx.useProps();
|
|
14
10
|
if (Array.isArray(is) ? is.includes(process.env[of]) : process.env[of] === is) {
|
|
15
|
-
|
|
11
|
+
innet.innet(children, innet.useHandler());
|
|
16
12
|
}
|
|
17
13
|
};
|
|
18
14
|
|
package/plugins/utils/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import './
|
|
1
|
+
import './blacklist/index.es6.js';
|
|
2
2
|
import './dts/index.es6.js';
|
|
3
3
|
import './env/index.es6.js';
|
|
4
4
|
import './protection/index.es6.js';
|
|
5
|
-
import './
|
|
5
|
+
import './swagger/index.es6.js';
|
|
6
|
+
import './ui/index.es6.js';
|
|
6
7
|
import './whitelist/index.es6.js';
|
package/plugins/utils/index.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
require('./
|
|
3
|
+
require('./blacklist/index.js');
|
|
4
4
|
require('./dts/index.js');
|
|
5
5
|
require('./env/index.js');
|
|
6
6
|
require('./protection/index.js');
|
|
7
|
-
require('./
|
|
7
|
+
require('./swagger/index.js');
|
|
8
|
+
require('./ui/index.js');
|
|
8
9
|
require('./whitelist/index.js');
|
|
9
10
|
|
|
@@ -5,6 +5,7 @@ import { useApi } from '../../../hooks/useApi/useApi.es6.js';
|
|
|
5
5
|
import { useServerPlugin } from '../../../hooks/useServerPlugin/useServerPlugin.es6.js';
|
|
6
6
|
import { useAction } from '../../../hooks/useAction/useAction.es6.js';
|
|
7
7
|
|
|
8
|
+
/** @deprecated Use <ui> */
|
|
8
9
|
const swagger = () => {
|
|
9
10
|
const { path = process.env.INNET_SWAGGER_PATH || '/swagger-ui', } = useProps() || {};
|
|
10
11
|
const { docs, prefix, } = useApi();
|
|
@@ -9,6 +9,7 @@ var useApi = require('../../../hooks/useApi/useApi.js');
|
|
|
9
9
|
var useServerPlugin = require('../../../hooks/useServerPlugin/useServerPlugin.js');
|
|
10
10
|
var useAction = require('../../../hooks/useAction/useAction.js');
|
|
11
11
|
|
|
12
|
+
/** @deprecated Use <ui> */
|
|
12
13
|
const swagger = () => {
|
|
13
14
|
const { path = process.env.INNET_SWAGGER_PATH || '/swagger-ui', } = jsx.useProps() || {};
|
|
14
15
|
const { docs, prefix, } = useApi.useApi();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ui';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ui, uiPresets } from './ui.es6.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var rapidoc = "<!doctype html>\n<html>\n<head>\n <script type=\"module\" src=\"https://unpkg.com/rapidoc/dist/rapidoc-min.js\"></script>\n</head>\n<body>\n<rapi-doc spec-url=\"{apiUrl}\" {attributes}></rapi-doc>\n</body>\n</html>\n";
|
|
6
|
+
|
|
7
|
+
exports["default"] = rapidoc;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var redoc = "<!DOCTYPE html>\n<html>\n<head>\n <title>Redoc CE</title>\n <meta charset=\"utf-8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n <link href=\"https://fonts.googleapis.com/css?family=Montserrat:300,400,700|Roboto:300,400,700\" rel=\"stylesheet\">\n <style>\n body {\n margin: 0;\n padding: 0;\n }\n </style>\n</head>\n<body>\n<redoc spec-url='{apiUrl}' {attributes}></redoc>\n<script src=\"https://cdn.redoc.ly/redoc/latest/bundles/redoc.standalone.js\"> </script>\n</body>\n</html>\n";
|
|
2
|
+
|
|
3
|
+
export { redoc as default };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var redoc = "<!DOCTYPE html>\n<html>\n<head>\n <title>Redoc CE</title>\n <meta charset=\"utf-8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n <link href=\"https://fonts.googleapis.com/css?family=Montserrat:300,400,700|Roboto:300,400,700\" rel=\"stylesheet\">\n <style>\n body {\n margin: 0;\n padding: 0;\n }\n </style>\n</head>\n<body>\n<redoc spec-url='{apiUrl}' {attributes}></redoc>\n<script src=\"https://cdn.redoc.ly/redoc/latest/bundles/redoc.standalone.js\"> </script>\n</body>\n</html>\n";
|
|
6
|
+
|
|
7
|
+
exports["default"] = redoc;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var scalar = "<!doctype html>\n<html>\n<head>\n <title>API Reference</title>\n <meta charset=\"utf-8\" />\n <meta\n name=\"viewport\"\n content=\"width=device-width, initial-scale=1\" />\n</head>\n<body>\n<div id=\"app\"></div>\n<script src=\"https://cdn.jsdelivr.net/npm/@scalar/api-reference\"></script>\n<script>\n Scalar.createApiReference('#app', {\n url: '{apiUrl}',\n ...{params}\n })\n</script>\n</body>\n</html>\n";
|
|
2
|
+
|
|
3
|
+
export { scalar as default };
|