typia 10.0.2 → 10.1.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.
@@ -34,18 +34,26 @@ const emplace_metadata_object = (props) => {
34
34
  }
35
35
  : (node) => isProperty(node);
36
36
  const insert = (props) => {
37
- var _a, _b, _c, _d;
37
+ var _a, _b, _c, _d, _e;
38
38
  // COMMENTS AND TAGS
39
39
  const description = props.symbol
40
40
  ? ((_a = CommentFactory_1.CommentFactory.description(props.symbol)) !== null && _a !== void 0 ? _a : null)
41
41
  : null;
42
42
  const jsDocTags = ((_c = (_b = props.symbol) === null || _b === void 0 ? void 0 : _b.getJsDocTags()) !== null && _c !== void 0 ? _c : []).filter((_d = props.filter) !== null && _d !== void 0 ? _d : (() => true));
43
+ // CHECK MUTABILITY
44
+ const mutability = props.node &&
45
+ typescript_1.default.canHaveModifiers(props.node) &&
46
+ ((_e = typescript_1.default
47
+ .getModifiers(props.node)) === null || _e === void 0 ? void 0 : _e.some((modifier) => modifier.kind === typescript_1.default.SyntaxKind.ReadonlyKeyword)) === true
48
+ ? "readonly"
49
+ : null;
43
50
  // THE PROPERTY
44
51
  const property = MetadataProperty_1.MetadataProperty.create({
45
52
  key: props.key,
46
53
  value: props.value,
47
54
  description,
48
55
  jsDocTags,
56
+ mutability,
49
57
  });
50
58
  obj.properties.push(property);
51
59
  return property;
@@ -85,6 +93,7 @@ const emplace_metadata_object = (props) => {
85
93
  key,
86
94
  value,
87
95
  symbol,
96
+ node,
88
97
  });
89
98
  }
90
99
  //----
@@ -133,6 +142,7 @@ const emplace_metadata_object = (props) => {
133
142
  symbol: ((_b = index.declaration) === null || _b === void 0 ? void 0 : _b.parent)
134
143
  ? props.checker.getSymbolAtLocation(index.declaration.parent)
135
144
  : undefined,
145
+ node: index.declaration,
136
146
  filter: (doc) => doc.name !== "default",
137
147
  });
138
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"emplace_metadata_object.js","sourceRoot":"","sources":["../../../../src/factories/internal/metadata/emplace_metadata_object.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emplace_metadata_object.js","sourceRoot":"","sources":["../../../../src/factories/internal/metadata/emplace_metadata_object.ts"],"names":[],"mappings":"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"}
@@ -32,12 +32,21 @@ const emplace_metadata_object = (props) => {
32
32
  ? (CommentFactory.description(props.symbol) ?? null)
33
33
  : null;
34
34
  const jsDocTags = (props.symbol?.getJsDocTags() ?? []).filter(props.filter ?? (() => true));
35
+ // CHECK MUTABILITY
36
+ const mutability = props.node &&
37
+ ts.canHaveModifiers(props.node) &&
38
+ ts
39
+ .getModifiers(props.node)
40
+ ?.some((modifier) => modifier.kind === ts.SyntaxKind.ReadonlyKeyword) === true
41
+ ? "readonly"
42
+ : null;
35
43
  // THE PROPERTY
36
44
  const property = MetadataProperty.create({
37
45
  key: props.key,
38
46
  value: props.value,
39
47
  description,
40
48
  jsDocTags,
49
+ mutability,
41
50
  });
42
51
  obj.properties.push(property);
43
52
  return property;
@@ -81,6 +90,7 @@ const emplace_metadata_object = (props) => {
81
90
  key,
82
91
  value,
83
92
  symbol,
93
+ node,
84
94
  });
85
95
  }
86
96
  //----
@@ -134,6 +144,7 @@ const emplace_metadata_object = (props) => {
134
144
  symbol: index.declaration?.parent
135
145
  ? props.checker.getSymbolAtLocation(index.declaration.parent)
136
146
  : undefined,
147
+ node: index.declaration,
137
148
  filter: (doc) => doc.name !== "default",
138
149
  });
139
150
  }
package/lib/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import * as module$1 from './module.mjs';
1
+ import * as module from './module.mjs';
2
2
  export { assert, assertEquals, assertGuard, assertGuardEquals, createAssert, createAssertEquals, createAssertGuard, createAssertGuardEquals, createEquals, createIs, createRandom, createValidate, createValidateEquals, equals, is, random, validate, validateEquals } from './module.mjs';
3
3
  import * as functional from './functional.mjs';
4
4
  export { functional };
@@ -22,5 +22,5 @@ export { TypeGuardError } from './TypeGuardError.mjs';
22
22
 
23
23
 
24
24
 
25
- export { module$1 as default };
25
+ export { module as default };
26
26
  //# sourceMappingURL=index.mjs.map
package/lib/misc.d.mts CHANGED
@@ -393,7 +393,7 @@ export declare function createAssertPrune(errorFactory?: undefined | ((props: Ty
393
393
  * @param errorFactory Custom error factory. Default is `TypeGuardError`
394
394
  * @returns A reusable `isPrune` function
395
395
  */
396
- export declare function createAssertPrune<T extends object>(errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): (input: T) => T;
396
+ export declare function createAssertPrune<T extends object>(errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): (input: unknown) => T;
397
397
  /**
398
398
  * Creates a reusable {@link isPrune} function.
399
399
  *
@@ -410,7 +410,7 @@ export declare function createIsPrune(): never;
410
410
  * @template T Type of the input value
411
411
  * @returns A reusable `isPrune` function
412
412
  */
413
- export declare function createIsPrune<T extends object>(): (input: T) => input is T;
413
+ export declare function createIsPrune<T extends object>(): (input: unknown) => input is T;
414
414
  /**
415
415
  * Creates a reusable {@link validatePrune} function.
416
416
  *
@@ -427,4 +427,4 @@ export declare function createValidatePrune(): never;
427
427
  * @template T Type of the input value
428
428
  * @returns A reusable `validatePrune` function
429
429
  */
430
- export declare function createValidatePrune<T extends object>(): (input: T) => IValidation<T>;
430
+ export declare function createValidatePrune<T extends object>(): (input: unknown) => IValidation<T>;
package/lib/misc.d.ts CHANGED
@@ -393,7 +393,7 @@ export declare function createAssertPrune(errorFactory?: undefined | ((props: Ty
393
393
  * @param errorFactory Custom error factory. Default is `TypeGuardError`
394
394
  * @returns A reusable `isPrune` function
395
395
  */
396
- export declare function createAssertPrune<T extends object>(errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): (input: T) => T;
396
+ export declare function createAssertPrune<T extends object>(errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error)): (input: unknown) => T;
397
397
  /**
398
398
  * Creates a reusable {@link isPrune} function.
399
399
  *
@@ -410,7 +410,7 @@ export declare function createIsPrune(): never;
410
410
  * @template T Type of the input value
411
411
  * @returns A reusable `isPrune` function
412
412
  */
413
- export declare function createIsPrune<T extends object>(): (input: T) => input is T;
413
+ export declare function createIsPrune<T extends object>(): (input: unknown) => input is T;
414
414
  /**
415
415
  * Creates a reusable {@link validatePrune} function.
416
416
  *
@@ -427,4 +427,4 @@ export declare function createValidatePrune(): never;
427
427
  * @template T Type of the input value
428
428
  * @returns A reusable `validatePrune` function
429
429
  */
430
- export declare function createValidatePrune<T extends object>(): (input: T) => IValidation<T>;
430
+ export declare function createValidatePrune<T extends object>(): (input: unknown) => IValidation<T>;
package/lib/misc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"misc.js","sourceRoot":"","sources":["../src/misc.ts"],"names":[],"mappings":";;AAkDA,4BAEC;AAyBD,sBAEC;AAiDD,kCAEC;AAuCD,0BAEC;AAuCD,sCAEC;AA6BD,sBAEC;AA+CD,kCAEC;AAyCD,0BAEC;AA2CD,sCAEC;AAyBD,kCAEC;AA4BD,8CAEC;AAsBD,sCAEC;AAwBD,kDAEC;AAsBD,kCAEC;AA4BD,8CAEC;AAsBD,sCAEC;AAwBD,kDAIC;AAjlBD;;;;;;;;8DAQ8D;AAC9D,gGAA6F;AAwC7F,gBAAgB;AAChB,SAAgB,QAAQ;IACtB,IAAA,6DAA6B,EAAC,eAAe,CAAC,CAAC;AACjD,CAAC;AAwBD,gBAAgB;AAChB,SAAgB,KAAK;IACnB,IAAA,6DAA6B,EAAC,YAAY,CAAC,CAAC;AAC9C,CAAC;AAgDD,gBAAgB;AAChB,SAAgB,WAAW;IACzB,IAAA,6DAA6B,EAAC,kBAAkB,CAAC,CAAC;AACpD,CAAC;AAsCD,gBAAgB;AAChB,SAAgB,OAAO;IACrB,IAAA,6DAA6B,EAAC,cAAc,CAAC,CAAC;AAChD,CAAC;AAsCD,gBAAgB;AAChB,SAAgB,aAAa;IAC3B,IAAA,6DAA6B,EAAC,oBAAoB,CAAC,CAAC;AACtD,CAAC;AA4BD,gBAAgB;AAChB,SAAgB,KAAK;IACnB,IAAA,6DAA6B,EAAC,YAAY,CAAC,CAAC;AAC9C,CAAC;AA8CD,gBAAgB;AAChB,SAAgB,WAAW;IACzB,IAAA,6DAA6B,EAAC,kBAAkB,CAAC,CAAC;AACpD,CAAC;AAwCD,gBAAgB;AAChB,SAAgB,OAAO;IACrB,IAAA,6DAA6B,EAAC,cAAc,CAAC,CAAC;AAChD,CAAC;AA0CD,gBAAgB;AAChB,SAAgB,aAAa;IAC3B,IAAA,6DAA6B,EAAC,oBAAoB,CAAC,CAAC;AACtD,CAAC;AAwBD,gBAAgB;AAChB,SAAgB,WAAW;IACzB,IAAA,6DAA6B,EAAC,kBAAkB,CAAC,CAAC;AACpD,CAAC;AA2BD,gBAAgB;AAChB,SAAgB,iBAAiB;IAC/B,IAAA,6DAA6B,EAAC,wBAAwB,CAAC,CAAC;AAC1D,CAAC;AAqBD,gBAAgB;AAChB,SAAgB,aAAa;IAC3B,IAAA,6DAA6B,EAAC,oBAAoB,CAAC,CAAC;AACtD,CAAC;AAuBD,gBAAgB;AAChB,SAAgB,mBAAmB;IACjC,IAAA,6DAA6B,EAAC,0BAA0B,CAAC,CAAC;AAC5D,CAAC;AAqBD,gBAAgB;AAChB,SAAgB,WAAW;IACzB,IAAA,6DAA6B,EAAC,kBAAkB,CAAC,CAAC;AACpD,CAAC;AA2BD,gBAAgB;AAChB,SAAgB,iBAAiB;IAC/B,IAAA,6DAA6B,EAAC,wBAAwB,CAAC,CAAC;AAC1D,CAAC;AAqBD,gBAAgB;AAChB,SAAgB,aAAa;IAC3B,IAAA,6DAA6B,EAAC,oBAAoB,CAAC,CAAC;AACtD,CAAC;AAuBD,gBAAgB;AAChB,SAAgB,mBAAmB;IAGjC,IAAA,6DAA6B,EAAC,0BAA0B,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"misc.js","sourceRoot":"","sources":["../src/misc.ts"],"names":[],"mappings":";;AAkDA,4BAEC;AAyBD,sBAEC;AAiDD,kCAEC;AAuCD,0BAEC;AAuCD,sCAEC;AA6BD,sBAEC;AA+CD,kCAEC;AAyCD,0BAEC;AA2CD,sCAEC;AAyBD,kCAEC;AA4BD,8CAEC;AAsBD,sCAEC;AAwBD,kDAEC;AAsBD,kCAEC;AA4BD,8CAEC;AAwBD,sCAEC;AAwBD,kDAEC;AAjlBD;;;;;;;;8DAQ8D;AAC9D,gGAA6F;AAwC7F,gBAAgB;AAChB,SAAgB,QAAQ;IACtB,IAAA,6DAA6B,EAAC,eAAe,CAAC,CAAC;AACjD,CAAC;AAwBD,gBAAgB;AAChB,SAAgB,KAAK;IACnB,IAAA,6DAA6B,EAAC,YAAY,CAAC,CAAC;AAC9C,CAAC;AAgDD,gBAAgB;AAChB,SAAgB,WAAW;IACzB,IAAA,6DAA6B,EAAC,kBAAkB,CAAC,CAAC;AACpD,CAAC;AAsCD,gBAAgB;AAChB,SAAgB,OAAO;IACrB,IAAA,6DAA6B,EAAC,cAAc,CAAC,CAAC;AAChD,CAAC;AAsCD,gBAAgB;AAChB,SAAgB,aAAa;IAC3B,IAAA,6DAA6B,EAAC,oBAAoB,CAAC,CAAC;AACtD,CAAC;AA4BD,gBAAgB;AAChB,SAAgB,KAAK;IACnB,IAAA,6DAA6B,EAAC,YAAY,CAAC,CAAC;AAC9C,CAAC;AA8CD,gBAAgB;AAChB,SAAgB,WAAW;IACzB,IAAA,6DAA6B,EAAC,kBAAkB,CAAC,CAAC;AACpD,CAAC;AAwCD,gBAAgB;AAChB,SAAgB,OAAO;IACrB,IAAA,6DAA6B,EAAC,cAAc,CAAC,CAAC;AAChD,CAAC;AA0CD,gBAAgB;AAChB,SAAgB,aAAa;IAC3B,IAAA,6DAA6B,EAAC,oBAAoB,CAAC,CAAC;AACtD,CAAC;AAwBD,gBAAgB;AAChB,SAAgB,WAAW;IACzB,IAAA,6DAA6B,EAAC,kBAAkB,CAAC,CAAC;AACpD,CAAC;AA2BD,gBAAgB;AAChB,SAAgB,iBAAiB;IAC/B,IAAA,6DAA6B,EAAC,wBAAwB,CAAC,CAAC;AAC1D,CAAC;AAqBD,gBAAgB;AAChB,SAAgB,aAAa;IAC3B,IAAA,6DAA6B,EAAC,oBAAoB,CAAC,CAAC;AACtD,CAAC;AAuBD,gBAAgB;AAChB,SAAgB,mBAAmB;IACjC,IAAA,6DAA6B,EAAC,0BAA0B,CAAC,CAAC;AAC5D,CAAC;AAqBD,gBAAgB;AAChB,SAAgB,WAAW;IACzB,IAAA,6DAA6B,EAAC,kBAAkB,CAAC,CAAC;AACpD,CAAC;AA2BD,gBAAgB;AAChB,SAAgB,iBAAiB;IAC/B,IAAA,6DAA6B,EAAC,wBAAwB,CAAC,CAAC;AAC1D,CAAC;AAuBD,gBAAgB;AAChB,SAAgB,aAAa;IAC3B,IAAA,6DAA6B,EAAC,oBAAoB,CAAC,CAAC;AACtD,CAAC;AAuBD,gBAAgB;AAChB,SAAgB,mBAAmB;IACjC,IAAA,6DAA6B,EAAC,0BAA0B,CAAC,CAAC;AAC5D,CAAC"}
@@ -58,6 +58,7 @@ const create_object_schema = (props) => {
58
58
  undefined,
59
59
  title: (0, json_schema_title_1.json_schema_title)(property),
60
60
  description: (0, json_schema_description_1.json_schema_description)(property),
61
+ readOnly: property.mutability === "readonly" ? true : undefined,
61
62
  },
62
63
  metadata: property.value,
63
64
  });
@@ -1 +1 @@
1
- {"version":3,"file":"json_schema_object.js","sourceRoot":"","sources":["../../../src/programmers/internal/json_schema_object.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json_schema_object.js","sourceRoot":"","sources":["../../../src/programmers/internal/json_schema_object.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,7 @@ const create_object_schema = (props) => {
53
53
  undefined,
54
54
  title: json_schema_title(property),
55
55
  description: json_schema_description(property),
56
+ readOnly: property.mutability === "readonly" ? true : undefined,
56
57
  },
57
58
  metadata: property.value,
58
59
  });
@@ -5,4 +5,5 @@ export interface IMetadataProperty {
5
5
  value: IMetadata;
6
6
  description: string | null;
7
7
  jsDocTags: IJsDocTagInfo[];
8
+ mutability?: "readonly" | null | undefined;
8
9
  }
@@ -5,4 +5,5 @@ export interface IMetadataProperty {
5
5
  value: IMetadata;
6
6
  description: string | null;
7
7
  jsDocTags: IJsDocTagInfo[];
8
+ mutability?: "readonly" | null | undefined;
8
9
  }
@@ -7,6 +7,7 @@ export declare class MetadataProperty {
7
7
  readonly value: Metadata;
8
8
  readonly description: string | null;
9
9
  readonly jsDocTags: IJsDocTagInfo[];
10
+ readonly mutability?: "readonly" | null | undefined;
10
11
  of_protobuf_?: IProtobufProperty;
11
12
  /** @ignore */
12
13
  private constructor();
@@ -7,6 +7,7 @@ export declare class MetadataProperty {
7
7
  readonly value: Metadata;
8
8
  readonly description: string | null;
9
9
  readonly jsDocTags: IJsDocTagInfo[];
10
+ readonly mutability?: "readonly" | null | undefined;
10
11
  of_protobuf_?: IProtobufProperty;
11
12
  /** @ignore */
12
13
  private constructor();
@@ -12,6 +12,7 @@ class MetadataProperty {
12
12
  this.value = props.value;
13
13
  this.description = props.description;
14
14
  this.jsDocTags = props.jsDocTags;
15
+ this.mutability = props.mutability;
15
16
  }
16
17
  /** @internal */
17
18
  static create(props) {
@@ -24,6 +25,7 @@ class MetadataProperty {
24
25
  value: Metadata_1.Metadata.from(property.value, dict),
25
26
  description: property.description,
26
27
  jsDocTags: property.jsDocTags.slice(),
28
+ mutability: property.mutability,
27
29
  });
28
30
  }
29
31
  toJSON() {
@@ -32,6 +34,7 @@ class MetadataProperty {
32
34
  value: this.value.toJSON(),
33
35
  description: this.description,
34
36
  jsDocTags: this.jsDocTags,
37
+ mutability: this.mutability,
35
38
  };
36
39
  }
37
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataProperty.js","sourceRoot":"","sources":["../../../src/schemas/metadata/MetadataProperty.ts"],"names":[],"mappings":";;;AAMA,yCAAsC;AAEtC,MAAa,gBAAgB;IAQ3B;;oEAEgE;IAChE,cAAc;IACd,YAAoB,KAAwC;QAC1D,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IACnC,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,MAAM,CAClB,KAAwC;QAExC,OAAO,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,IAAI,CAAC,QAA2B,EAAE,IAAyB;QACvE,OAAO,gBAAgB,CAAC,MAAM,CAAC;YAC7B,GAAG,EAAE,mBAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;YACtC,KAAK,EAAE,mBAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;YAC1C,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE;SACtC,CAAC,CAAC;IACL,CAAC;IAEM,MAAM;QACX,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;YACtB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAC1B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;CACF;AA5CD,4CA4CC"}
1
+ {"version":3,"file":"MetadataProperty.js","sourceRoot":"","sources":["../../../src/schemas/metadata/MetadataProperty.ts"],"names":[],"mappings":";;;AAMA,yCAAsC;AAEtC,MAAa,gBAAgB;IAS3B;;oEAEgE;IAChE,cAAc;IACd,YAAoB,KAAwC;QAC1D,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACrC,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,MAAM,CAClB,KAAwC;QAExC,OAAO,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,IAAI,CAAC,QAA2B,EAAE,IAAyB;QACvE,OAAO,gBAAgB,CAAC,MAAM,CAAC;YAC7B,GAAG,EAAE,mBAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;YACtC,KAAK,EAAE,mBAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;YAC1C,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE;YACrC,UAAU,EAAE,QAAQ,CAAC,UAAU;SAChC,CAAC,CAAC;IACL,CAAC;IAEM,MAAM;QACX,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;YACtB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAC1B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;IACJ,CAAC;CACF;AAhDD,4CAgDC"}
@@ -5,6 +5,7 @@ class MetadataProperty {
5
5
  value;
6
6
  description;
7
7
  jsDocTags;
8
+ mutability;
8
9
  of_protobuf_;
9
10
  /* -----------------------------------------------------------
10
11
  CONSTRUCTORS
@@ -15,6 +16,7 @@ class MetadataProperty {
15
16
  this.value = props.value;
16
17
  this.description = props.description;
17
18
  this.jsDocTags = props.jsDocTags;
19
+ this.mutability = props.mutability;
18
20
  }
19
21
  /** @internal */
20
22
  static create(props) {
@@ -27,6 +29,7 @@ class MetadataProperty {
27
29
  value: Metadata.from(property.value, dict),
28
30
  description: property.description,
29
31
  jsDocTags: property.jsDocTags.slice(),
32
+ mutability: property.mutability,
30
33
  });
31
34
  }
32
35
  toJSON() {
@@ -35,6 +38,7 @@ class MetadataProperty {
35
38
  value: this.value.toJSON(),
36
39
  description: this.description,
37
40
  jsDocTags: this.jsDocTags,
41
+ mutability: this.mutability,
38
42
  };
39
43
  }
40
44
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "10.0.2",
3
+ "version": "10.1.0",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -41,7 +41,7 @@
41
41
  },
42
42
  "homepage": "https://typia.io",
43
43
  "dependencies": {
44
- "@samchon/openapi": "^5.0.1",
44
+ "@samchon/openapi": "^5.1.0",
45
45
  "@standard-schema/spec": "^1.0.0",
46
46
  "commander": "^10.0.0",
47
47
  "comment-json": "^4.2.3",
@@ -118,5 +118,6 @@
118
118
  "claude",
119
119
  "gemini",
120
120
  "llama"
121
- ]
121
+ ],
122
+ "packageManager": "pnpm@10.6.4"
122
123
  }
@@ -51,6 +51,7 @@ export const emplace_metadata_object = (
51
51
  key: Metadata;
52
52
  value: Metadata;
53
53
  symbol: ts.Symbol | undefined;
54
+ node?: ts.Declaration;
54
55
  filter?: (doc: ts.JSDocTagInfo) => boolean;
55
56
  }): MetadataProperty => {
56
57
  // COMMENTS AND TAGS
@@ -61,12 +62,25 @@ export const emplace_metadata_object = (
61
62
  props.symbol?.getJsDocTags() ?? []
62
63
  ).filter(props.filter ?? (() => true));
63
64
 
65
+ // CHECK MUTABILITY
66
+ const mutability: "readonly" | null | undefined =
67
+ props.node &&
68
+ ts.canHaveModifiers(props.node) &&
69
+ ts
70
+ .getModifiers(props.node)
71
+ ?.some(
72
+ (modifier) => modifier.kind === ts.SyntaxKind.ReadonlyKeyword,
73
+ ) === true
74
+ ? "readonly"
75
+ : null;
76
+
64
77
  // THE PROPERTY
65
78
  const property: MetadataProperty = MetadataProperty.create({
66
79
  key: props.key,
67
80
  value: props.value,
68
81
  description,
69
82
  jsDocTags,
83
+ mutability,
70
84
  });
71
85
  obj.properties.push(property);
72
86
  return property;
@@ -118,6 +132,7 @@ export const emplace_metadata_object = (
118
132
  key,
119
133
  value,
120
134
  symbol,
135
+ node,
121
136
  });
122
137
  }
123
138
 
@@ -180,6 +195,7 @@ export const emplace_metadata_object = (
180
195
  symbol: index.declaration?.parent
181
196
  ? props.checker.getSymbolAtLocation(index.declaration.parent)
182
197
  : undefined,
198
+ node: index.declaration,
183
199
  filter: (doc) => doc.name !== "default",
184
200
  });
185
201
  }
package/src/misc.ts CHANGED
@@ -507,7 +507,7 @@ export function createPrune(): never;
507
507
  export function createPrune<T extends object>(): (input: T) => void;
508
508
 
509
509
  /** @internal */
510
- export function createPrune<T extends object>(): (input: T) => void {
510
+ export function createPrune(): never {
511
511
  NoTransformConfigurationError("misc.createPrune");
512
512
  }
513
513
 
@@ -534,10 +534,10 @@ export function createAssertPrune(
534
534
  */
535
535
  export function createAssertPrune<T extends object>(
536
536
  errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
537
- ): (input: T) => T;
537
+ ): (input: unknown) => T;
538
538
 
539
539
  /** @internal */
540
- export function createAssertPrune<T extends object>(): (input: T) => T {
540
+ export function createAssertPrune(): never {
541
541
  NoTransformConfigurationError("misc.createAssertPrune");
542
542
  }
543
543
 
@@ -558,10 +558,12 @@ export function createIsPrune(): never;
558
558
  * @template T Type of the input value
559
559
  * @returns A reusable `isPrune` function
560
560
  */
561
- export function createIsPrune<T extends object>(): (input: T) => input is T;
561
+ export function createIsPrune<T extends object>(): (
562
+ input: unknown,
563
+ ) => input is T;
562
564
 
563
565
  /** @internal */
564
- export function createIsPrune<T extends object>(): (input: T) => input is T {
566
+ export function createIsPrune(): never {
565
567
  NoTransformConfigurationError("misc.createIsPrune");
566
568
  }
567
569
 
@@ -583,12 +585,10 @@ export function createValidatePrune(): never;
583
585
  * @returns A reusable `validatePrune` function
584
586
  */
585
587
  export function createValidatePrune<T extends object>(): (
586
- input: T,
588
+ input: unknown,
587
589
  ) => IValidation<T>;
588
590
 
589
591
  /** @internal */
590
- export function createValidatePrune<T extends object>(): (
591
- input: T,
592
- ) => IValidation<T> {
592
+ export function createValidatePrune(): never {
593
593
  NoTransformConfigurationError("misc.createValidatePrune");
594
594
  }
@@ -76,6 +76,7 @@ const create_object_schema = (props: {
76
76
  undefined,
77
77
  title: json_schema_title(property),
78
78
  description: json_schema_description(property),
79
+ readOnly: property.mutability === "readonly" ? true : undefined,
79
80
  },
80
81
  metadata: property.value,
81
82
  });
@@ -6,4 +6,5 @@ export interface IMetadataProperty {
6
6
  value: IMetadata;
7
7
  description: string | null;
8
8
  jsDocTags: IJsDocTagInfo[];
9
+ mutability?: "readonly" | null | undefined;
9
10
  }
@@ -11,6 +11,7 @@ export class MetadataProperty {
11
11
  public readonly value: Metadata;
12
12
  public readonly description: string | null;
13
13
  public readonly jsDocTags: IJsDocTagInfo[];
14
+ public readonly mutability?: "readonly" | null | undefined;
14
15
 
15
16
  public of_protobuf_?: IProtobufProperty;
16
17
 
@@ -23,6 +24,7 @@ export class MetadataProperty {
23
24
  this.value = props.value;
24
25
  this.description = props.description;
25
26
  this.jsDocTags = props.jsDocTags;
27
+ this.mutability = props.mutability;
26
28
  }
27
29
 
28
30
  /** @internal */
@@ -39,6 +41,7 @@ export class MetadataProperty {
39
41
  value: Metadata.from(property.value, dict),
40
42
  description: property.description,
41
43
  jsDocTags: property.jsDocTags.slice(),
44
+ mutability: property.mutability,
42
45
  });
43
46
  }
44
47
 
@@ -48,6 +51,7 @@ export class MetadataProperty {
48
51
  value: this.value.toJSON(),
49
52
  description: this.description,
50
53
  jsDocTags: this.jsDocTags,
54
+ mutability: this.mutability,
51
55
  };
52
56
  }
53
57
  }