@k8ts/metadata 0.10.2 → 0.11.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.
Files changed (94) hide show
  1. package/dist/error.d.ts +1 -1
  2. package/dist/error.d.ts.map +1 -1
  3. package/dist/error.js +3 -3
  4. package/dist/error.js.map +1 -1
  5. package/dist/index.d.ts +2 -3
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +2 -5
  8. package/dist/index.js.map +1 -1
  9. package/dist/input/dict-input.d.ts +5 -8
  10. package/dist/input/dict-input.d.ts.map +1 -1
  11. package/dist/input/index.d.ts +8 -0
  12. package/dist/input/index.d.ts.map +1 -0
  13. package/dist/input/index.js +24 -0
  14. package/dist/input/index.js.map +1 -0
  15. package/dist/input/key/base.d.ts +6 -0
  16. package/dist/input/key/base.d.ts.map +1 -0
  17. package/dist/input/key/base.js +13 -0
  18. package/dist/input/key/base.js.map +1 -0
  19. package/dist/input/key/domain-prefix.d.ts +8 -0
  20. package/dist/input/key/domain-prefix.d.ts.map +1 -0
  21. package/dist/input/key/domain-prefix.js +19 -0
  22. package/dist/input/key/domain-prefix.js.map +1 -0
  23. package/dist/input/key/metadata-key.d.ts +21 -0
  24. package/dist/input/key/metadata-key.d.ts.map +1 -0
  25. package/dist/input/key/metadata-key.js +82 -0
  26. package/dist/input/key/metadata-key.js.map +1 -0
  27. package/dist/input/key/parse-key.d.ts +10 -0
  28. package/dist/input/key/parse-key.d.ts.map +1 -0
  29. package/dist/{key → input/key}/parse-key.js +10 -8
  30. package/dist/input/key/parse-key.js.map +1 -0
  31. package/dist/input/key/string-types.d.ts +10 -0
  32. package/dist/input/key/string-types.d.ts.map +1 -0
  33. package/dist/input/key/string-types.js +3 -0
  34. package/dist/input/key/string-types.js.map +1 -0
  35. package/dist/input/parse-dict.d.ts +3 -2
  36. package/dist/input/parse-dict.d.ts.map +1 -1
  37. package/dist/input/parse-dict.js +16 -7
  38. package/dist/input/parse-dict.js.map +1 -1
  39. package/dist/meta.d.ts +243 -273
  40. package/dist/meta.d.ts.map +1 -1
  41. package/dist/meta.js +259 -297
  42. package/dist/meta.js.map +1 -1
  43. package/dist/util.d.ts +1 -22
  44. package/dist/util.d.ts.map +1 -1
  45. package/dist/util.js +15 -110
  46. package/dist/util.js.map +1 -1
  47. package/dist/utils/map.d.ts +23 -0
  48. package/dist/utils/map.d.ts.map +1 -0
  49. package/dist/utils/map.js +113 -0
  50. package/dist/utils/map.js.map +1 -0
  51. package/dist/utils/order-meta-keyed-object.d.ts.map +1 -0
  52. package/dist/{order-meta-keyed-object.js → utils/order-meta-keyed-object.js} +2 -1
  53. package/dist/utils/order-meta-keyed-object.js.map +1 -0
  54. package/dist/utils/validate.d.ts +4 -0
  55. package/dist/utils/validate.d.ts.map +1 -0
  56. package/dist/utils/validate.js +38 -0
  57. package/dist/utils/validate.js.map +1 -0
  58. package/package.json +2 -8
  59. package/src/error.ts +1 -1
  60. package/src/index.ts +2 -3
  61. package/src/input/dict-input.ts +5 -12
  62. package/src/input/index.ts +7 -0
  63. package/src/input/key/base.ts +10 -0
  64. package/src/input/key/domain-prefix.ts +14 -0
  65. package/src/input/key/metadata-key.ts +90 -0
  66. package/src/{key → input/key}/parse-key.ts +12 -8
  67. package/src/input/key/string-types.ts +15 -0
  68. package/src/input/parse-dict.ts +23 -13
  69. package/src/meta.ts +391 -417
  70. package/src/util.ts +1 -115
  71. package/src/utils/map.ts +115 -0
  72. package/src/{order-meta-keyed-object.ts → utils/order-meta-keyed-object.ts} +2 -1
  73. package/src/utils/validate.ts +32 -0
  74. package/dist/key/index.d.ts +0 -4
  75. package/dist/key/index.d.ts.map +0 -1
  76. package/dist/key/index.js +0 -11
  77. package/dist/key/index.js.map +0 -1
  78. package/dist/key/parse-key.d.ts +0 -8
  79. package/dist/key/parse-key.d.ts.map +0 -1
  80. package/dist/key/parse-key.js.map +0 -1
  81. package/dist/key/repr.d.ts +0 -36
  82. package/dist/key/repr.d.ts.map +0 -1
  83. package/dist/key/repr.js +0 -113
  84. package/dist/key/repr.js.map +0 -1
  85. package/dist/key/types.d.ts +0 -20
  86. package/dist/key/types.d.ts.map +0 -1
  87. package/dist/key/types.js +0 -11
  88. package/dist/key/types.js.map +0 -1
  89. package/dist/order-meta-keyed-object.d.ts.map +0 -1
  90. package/dist/order-meta-keyed-object.js.map +0 -1
  91. package/src/key/index.ts +0 -4
  92. package/src/key/repr.ts +0 -128
  93. package/src/key/types.ts +0 -21
  94. /package/dist/{order-meta-keyed-object.d.ts → utils/order-meta-keyed-object.d.ts} +0 -0
@@ -0,0 +1,15 @@
1
+ export type Metadata_Key_sPrefix_Label = "%"
2
+ export type Metadata_Key_sPrefix_Annotation = "^"
3
+ export type Metadata_Key_sPrefix_Comment = "#"
4
+ export type Metadata_Key_sPrefix =
5
+ | Metadata_Key_sPrefix_Label
6
+ | Metadata_Key_sPrefix_Annotation
7
+ | Metadata_Key_sPrefix_Comment
8
+ export type Metadata_Key_sSuffix_Domain = "/"
9
+
10
+ export type Metadata_Key_sDomain = `${string}${Metadata_Key_sSuffix_Domain}`
11
+ export type Metadata_Key_sPrefixed = `${Metadata_Key_sPrefix}${string}`
12
+ export type Metadata_Key_sValue = Metadata_Key_sPrefixed
13
+ export type NotPrefixed<T extends string> = [T] extends [Metadata_Key_sPrefixed]
14
+ ? `𝗣𝗿𝗲𝗳𝗶𝘅𝗲𝘀 𝗮𝗿𝗲 𝗶𝗹𝗹𝗲𝗴𝗮𝗹 𝗶𝗻 𝘁𝗵𝗲 𝗱𝗼𝗺𝗮𝗶𝗻 𝘀𝗲𝗰𝘁𝗶𝗼𝗻`
15
+ : Metadata_Key_sDomain
@@ -1,28 +1,38 @@
1
1
  import { isNullish } from "what-are-you"
2
- import { parseInnerKey, parseOuterKey } from "../key/parse-key"
3
- import { DomainPrefix } from "../key/repr"
4
- import { Meta } from "../meta"
5
- import type { InputMeta } from "./dict-input"
2
+ import { K8tsMetadataError } from "../error"
3
+ import { Metadata } from "../meta"
4
+ import type { Metadata_Input } from "./dict-input"
5
+ import { Metadata_Key_Domain } from "./key/domain-prefix"
6
+ import { parseInnerKey, parseOuterKey } from "./key/parse-key"
7
+ import type { Metadata_Key_sValue } from "./key/string-types"
6
8
 
7
- export function parseMetaInput(input: InputMeta): Map<string, string> {
9
+ export function parseMetaInput(input: Metadata_Input): Map<Metadata_Key_sValue, string> {
8
10
  if (input == null) {
9
11
  return new Map()
10
12
  }
11
13
  if (input instanceof Map) {
12
- return new Map(input) as Map<string, string>
14
+ return new Map(input) as Map<Metadata_Key_sValue, string>
13
15
  }
14
- if (input instanceof Meta.Meta) {
15
- return new Map(input["_dict"] as Map<string, string>)
16
+ if (Symbol.iterator in Object(input)) {
17
+ let map = new Map<Metadata_Key_sValue, string>()
18
+ for (const item of input as Iterable<readonly [string, string]>) {
19
+ const [key, value] = item
20
+ map.set(key as any, value)
21
+ }
22
+ return map
23
+ }
24
+ if (input instanceof Metadata) {
25
+ return new Map(input["_dict"])
16
26
  }
17
- let map = new Map<string, string>()
27
+ let map = new Map<Metadata_Key_sValue, string>()
18
28
  for (const [key, value] of Object.entries(input)) {
19
29
  const outer = parseOuterKey(key)
20
30
  if (isNullish(value)) {
21
31
  continue
22
32
  }
23
- if (outer instanceof DomainPrefix) {
33
+ if (outer instanceof Metadata_Key_Domain) {
24
34
  if (typeof value !== "object") {
25
- throw new Error(`Expected object for section key ${key}`)
35
+ throw new K8tsMetadataError(`Expected object for section key ${key}`)
26
36
  }
27
37
  for (const [kk, vv] of Object.entries(value)) {
28
38
  if (isNullish(vv)) {
@@ -31,13 +41,13 @@ export function parseMetaInput(input: InputMeta): Map<string, string> {
31
41
  const inner = parseInnerKey(kk)
32
42
 
33
43
  if (typeof vv !== "string") {
34
- throw new Error(`Expected string value for inner key ${kk}`)
44
+ throw new K8tsMetadataError(`Expected string value for inner key ${kk}`)
35
45
  }
36
46
  map.set(inner.domain(outer).str, vv as string)
37
47
  }
38
48
  } else {
39
49
  if (typeof value !== "string") {
40
- throw new Error(`Expected string value for key ${key}`)
50
+ throw new K8tsMetadataError(`Expected string value for key ${key}`)
41
51
  }
42
52
  map.set(outer.str, value as string)
43
53
  }