@k8ts/metadata 0.10.3 → 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
package/dist/util.d.ts CHANGED
@@ -1,23 +1,2 @@
1
- export declare function mergeWith<K1, K2, V1, V2, V3>(map1: Map<K1, V1>, map2: Map<K2, V2>, merger: (val1: V1, val2: V2, key: K1 | K2) => V3): Map<K1 | K2, V1 | V2 | V3>;
2
- export declare function merge<K1, K2, V1, V2>(map1: Map<K1, V1>, map2: Map<K2, V2>): Map<K1 | K2, V1 | V2>;
3
- export declare function filterMap<K, V>(map: Map<K, V>, pred: (v: V, k: K) => boolean): Map<K, V>;
4
- export declare function mapKeys<K, V, NK>(map: Map<K, V>, fn: (k: K) => NK): Map<NK, V>;
5
- export declare function mapValues<K, V, NV>(map: Map<K, V>, fn: (v: V, k: K) => NV): Map<K, NV>;
6
- export declare function toObject<K, V>(map: Map<K, V>): {
7
- [k: string]: V;
8
- };
9
- export declare function toJS<K, V>(map: Map<K, V>): {
10
- [k: string]: V;
11
- };
12
- export declare function equalsMap<K, V>(a: Map<K, V>, b: Map<K, V>): boolean;
13
- export declare function mapFromObject<V>(obj: {
14
- [k: string]: V;
15
- }): Map<string, V>;
16
- export declare function mapToObject<V>(map: Map<string, V>): {
17
- [k: string]: V;
18
- };
19
- export type SourcedPropertyDescriptor = PropertyDescriptor & {
20
- source: object;
21
- };
22
- export declare function getDeepPropertyDescriptor(obj: any, propertyKey: string | symbol): SourcedPropertyDescriptor | undefined;
1
+ export * from "./utils/map";
23
2
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AACA,wBAAgB,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACxC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EACjB,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EACjB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GACjD,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAa5B;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAEjG;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAMxF;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAM9E;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAMtF;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAA;CAAE,CAOjE;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAA;CAAE,CAE7D;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAgBnE;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAA;CAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAMxE;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAA;CAAE,CAMtE;AAED,MAAM,MAAM,yBAAyB,GAAG,kBAAkB,GAAG;IACzD,MAAM,EAAE,MAAM,CAAA;CACjB,CAAA;AACD,wBAAgB,yBAAyB,CACrC,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,MAAM,GAAG,MAAM,GAC7B,yBAAyB,GAAG,SAAS,CAavC"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA"}
package/dist/util.js CHANGED
@@ -1,113 +1,18 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mergeWith = mergeWith;
4
- exports.merge = merge;
5
- exports.filterMap = filterMap;
6
- exports.mapKeys = mapKeys;
7
- exports.mapValues = mapValues;
8
- exports.toObject = toObject;
9
- exports.toJS = toJS;
10
- exports.equalsMap = equalsMap;
11
- exports.mapFromObject = mapFromObject;
12
- exports.mapToObject = mapToObject;
13
- exports.getDeepPropertyDescriptor = getDeepPropertyDescriptor;
14
- function mergeWith(map1, map2, merger) {
15
- const result = new Map(map1);
16
- const allKeys = new Set([...map1.keys(), ...map2.keys()]);
17
- for (const k of allKeys) {
18
- const val1 = map1.get(k);
19
- const val2 = map2.get(k);
20
- if (val1 !== undefined && val2 !== undefined) {
21
- result.set(k, merger(val1, val2, k));
22
- }
23
- else if (val2 !== undefined) {
24
- result.set(k, val2);
25
- }
26
- }
27
- return result;
28
- }
29
- function merge(map1, map2) {
30
- return mergeWith(map1, map2, (_old, _new) => _new);
31
- }
32
- function filterMap(map, pred) {
33
- const out = new Map();
34
- for (const [k, v] of map.entries()) {
35
- if (pred(v, k))
36
- out.set(k, v);
37
- }
38
- return out;
39
- }
40
- function mapKeys(map, fn) {
41
- const out = new Map();
42
- for (const [k, v] of map.entries()) {
43
- out.set(fn(k), v);
44
- }
45
- return out;
46
- }
47
- function mapValues(map, fn) {
48
- const out = new Map();
49
- for (const [k, v] of map.entries()) {
50
- out.set(k, fn(v, k));
51
- }
52
- return out;
53
- }
54
- function toObject(map) {
55
- const out = {};
56
- for (const [k, v] of map.entries()) {
57
- const key = k?.str ?? String(k);
58
- out[key] = v;
59
- }
60
- return out;
61
- }
62
- function toJS(map) {
63
- return toObject(map);
64
- }
65
- function equalsMap(a, b) {
66
- if (a.size !== b.size)
67
- return false;
68
- for (const [ka, va] of a.entries()) {
69
- let found = false;
70
- for (const [kb, vb] of b.entries()) {
71
- const sa = ka?.str ?? ka;
72
- const sb = kb?.str ?? kb;
73
- if (sa === sb) {
74
- found = true;
75
- if (va !== vb)
76
- return false;
77
- break;
78
- }
79
- }
80
- if (!found)
81
- return false;
82
- }
83
- return true;
84
- }
85
- function mapFromObject(obj) {
86
- const map = new Map();
87
- for (const k of Object.keys(obj)) {
88
- map.set(k, obj[k]);
89
- }
90
- return map;
91
- }
92
- function mapToObject(map) {
93
- const obj = {};
94
- for (const [k, v] of map.entries()) {
95
- obj[k] = v;
96
- }
97
- return obj;
98
- }
99
- function getDeepPropertyDescriptor(obj, propertyKey) {
100
- let current = obj;
101
- while (current) {
102
- const descriptor = Object.getOwnPropertyDescriptor(current, propertyKey);
103
- if (descriptor) {
104
- return {
105
- ...descriptor,
106
- source: current
107
- };
108
- }
109
- current = Object.getPrototypeOf(current);
110
- }
111
- return undefined;
112
- }
17
+ __exportStar(require("./utils/map"), exports);
113
18
  //# sourceMappingURL=util.js.map
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B"}
@@ -0,0 +1,23 @@
1
+ export declare function mergeWith<K1, K2, V1, V2, V3>(map1: Map<K1, V1>, map2: Map<K2, V2>, merger: (val1: V1, val2: V2, key: K1 | K2) => V3): Map<K1 | K2, V1 | V2 | V3>;
2
+ export declare function merge<K1, K2, V1, V2>(map1: Map<K1, V1>, map2: Map<K2, V2>): Map<K1 | K2, V1 | V2>;
3
+ export declare function filterMap<K, V>(map: Map<K, V>, pred: (v: V, k: K) => boolean): Map<K, V>;
4
+ export declare function mapKeys<K, V, NK>(map: Map<K, V>, fn: (k: K) => NK): Map<NK, V>;
5
+ export declare function mapValues<K, V, NV>(map: Map<K, V>, fn: (v: V, k: K) => NV): Map<K, NV>;
6
+ export declare function toObject<K, V>(map: Map<K, V>): {
7
+ [k: string]: V;
8
+ };
9
+ export declare function toJS<K, V>(map: Map<K, V>): {
10
+ [k: string]: V;
11
+ };
12
+ export declare function equalsMap<K, V>(a: Map<K, V>, b: Map<K, V>): boolean;
13
+ export declare function mapFromObject<V>(obj: {
14
+ [k: string]: V;
15
+ }): Map<string, V>;
16
+ export declare function mapToObject<V>(map: Map<string, V>): {
17
+ [k: string]: V;
18
+ };
19
+ export type SourcedPropertyDescriptor = PropertyDescriptor & {
20
+ source: object;
21
+ };
22
+ export declare function getDeepPropertyDescriptor(obj: any, propertyKey: string | symbol): SourcedPropertyDescriptor | undefined;
23
+ //# sourceMappingURL=map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/utils/map.ts"],"names":[],"mappings":"AACA,wBAAgB,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACxC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EACjB,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EACjB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GACjD,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAa5B;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAEjG;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAMxF;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAM9E;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAMtF;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAA;CAAE,CAOjE;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAA;CAAE,CAE7D;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAgBnE;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAA;CAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAMxE;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAA;CAAE,CAMtE;AAED,MAAM,MAAM,yBAAyB,GAAG,kBAAkB,GAAG;IACzD,MAAM,EAAE,MAAM,CAAA;CACjB,CAAA;AACD,wBAAgB,yBAAyB,CACrC,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,MAAM,GAAG,MAAM,GAC7B,yBAAyB,GAAG,SAAS,CAavC"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mergeWith = mergeWith;
4
+ exports.merge = merge;
5
+ exports.filterMap = filterMap;
6
+ exports.mapKeys = mapKeys;
7
+ exports.mapValues = mapValues;
8
+ exports.toObject = toObject;
9
+ exports.toJS = toJS;
10
+ exports.equalsMap = equalsMap;
11
+ exports.mapFromObject = mapFromObject;
12
+ exports.mapToObject = mapToObject;
13
+ exports.getDeepPropertyDescriptor = getDeepPropertyDescriptor;
14
+ function mergeWith(map1, map2, merger) {
15
+ const result = new Map(map1);
16
+ const allKeys = new Set([...map1.keys(), ...map2.keys()]);
17
+ for (const k of allKeys) {
18
+ const val1 = map1.get(k);
19
+ const val2 = map2.get(k);
20
+ if (val1 !== undefined && val2 !== undefined) {
21
+ result.set(k, merger(val1, val2, k));
22
+ }
23
+ else if (val2 !== undefined) {
24
+ result.set(k, val2);
25
+ }
26
+ }
27
+ return result;
28
+ }
29
+ function merge(map1, map2) {
30
+ return mergeWith(map1, map2, (_old, _new) => _new);
31
+ }
32
+ function filterMap(map, pred) {
33
+ const out = new Map();
34
+ for (const [k, v] of map.entries()) {
35
+ if (pred(v, k))
36
+ out.set(k, v);
37
+ }
38
+ return out;
39
+ }
40
+ function mapKeys(map, fn) {
41
+ const out = new Map();
42
+ for (const [k, v] of map.entries()) {
43
+ out.set(fn(k), v);
44
+ }
45
+ return out;
46
+ }
47
+ function mapValues(map, fn) {
48
+ const out = new Map();
49
+ for (const [k, v] of map.entries()) {
50
+ out.set(k, fn(v, k));
51
+ }
52
+ return out;
53
+ }
54
+ function toObject(map) {
55
+ const out = {};
56
+ for (const [k, v] of map.entries()) {
57
+ const key = k?.str ?? String(k);
58
+ out[key] = v;
59
+ }
60
+ return out;
61
+ }
62
+ function toJS(map) {
63
+ return toObject(map);
64
+ }
65
+ function equalsMap(a, b) {
66
+ if (a.size !== b.size)
67
+ return false;
68
+ for (const [ka, va] of a.entries()) {
69
+ let found = false;
70
+ for (const [kb, vb] of b.entries()) {
71
+ const sa = ka?.str ?? ka;
72
+ const sb = kb?.str ?? kb;
73
+ if (sa === sb) {
74
+ found = true;
75
+ if (va !== vb)
76
+ return false;
77
+ break;
78
+ }
79
+ }
80
+ if (!found)
81
+ return false;
82
+ }
83
+ return true;
84
+ }
85
+ function mapFromObject(obj) {
86
+ const map = new Map();
87
+ for (const k of Object.keys(obj)) {
88
+ map.set(k, obj[k]);
89
+ }
90
+ return map;
91
+ }
92
+ function mapToObject(map) {
93
+ const obj = {};
94
+ for (const [k, v] of map.entries()) {
95
+ obj[k] = v;
96
+ }
97
+ return obj;
98
+ }
99
+ function getDeepPropertyDescriptor(obj, propertyKey) {
100
+ let current = obj;
101
+ while (current) {
102
+ const descriptor = Object.getOwnPropertyDescriptor(current, propertyKey);
103
+ if (descriptor) {
104
+ return {
105
+ ...descriptor,
106
+ source: current
107
+ };
108
+ }
109
+ current = Object.getPrototypeOf(current);
110
+ }
111
+ return undefined;
112
+ }
113
+ //# sourceMappingURL=map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/utils/map.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-meta-keyed-object.d.ts","sourceRoot":"","sources":["../../src/utils/order-meta-keyed-object.ts"],"names":[],"mappings":"AAgBA,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAIvF"}
@@ -2,13 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.orderMetaKeyedObject = orderMetaKeyedObject;
4
4
  const doddle_1 = require("doddle");
5
+ const error_1 = require("../error");
5
6
  function comparisonKey(key) {
6
7
  const bySlash = key.split("/");
7
8
  if (bySlash.length === 1) {
8
9
  return key;
9
10
  }
10
11
  if (bySlash.length > 2) {
11
- throw new Error(`Invalid composed key ${key}, too many '/' characters.`);
12
+ throw new error_1.K8tsMetadataError(`Invalid composed key ${key}, too many '/' characters.`);
12
13
  }
13
14
  const [dns, name] = bySlash;
14
15
  const dnsParts = dns.split(".").reverse();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-meta-keyed-object.js","sourceRoot":"","sources":["../../src/utils/order-meta-keyed-object.ts"],"names":[],"mappings":";;AAgBA,oDAIC;AApBD,mCAA4B;AAC5B,oCAA4C;AAE5C,SAAS,aAAa,CAAC,GAAW;IAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC9B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAA;IACd,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,yBAAiB,CAAC,wBAAwB,GAAG,4BAA4B,CAAC,CAAA;IACxF,CAAC;IACD,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAA;IAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAA;IACzC,OAAO,CAAC,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AAC7C,CAAC;AAED,SAAgB,oBAAoB,CAAC,KAA6B;IAC9D,MAAM,OAAO,GAAG,IAAA,YAAG,EAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;IAEjF,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;AACtC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function checkMetadataValue(key: string, v: string): void;
2
+ export declare function checkNameValue(what: string, v: string): void;
3
+ export declare function checkMetaString(thing: string, input: string, length: number): void;
4
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/utils/validate.ts"],"names":[],"mappings":"AAIA,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,QAUxD;AACD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,QAKrD;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAU3E"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkMetadataValue = checkMetadataValue;
4
+ exports.checkNameValue = checkNameValue;
5
+ exports.checkMetaString = checkMetaString;
6
+ const error_1 = require("../error");
7
+ const metadata_key_1 = require("../input/key/metadata-key");
8
+ const parse_key_1 = require("../input/key/parse-key");
9
+ function checkMetadataValue(key, v) {
10
+ const parsed = (0, parse_key_1.parseOuterKey)(key);
11
+ if (!(parsed instanceof metadata_key_1.Metadata_Key_Value)) {
12
+ throw new error_1.K8tsMetadataError(`Expected value key, got section key for ${key}`);
13
+ }
14
+ if (parsed.metaType === "label") {
15
+ checkMetaString(`value of ${key}`, v, 63);
16
+ }
17
+ else if (parsed.metaType === "core") {
18
+ checkNameValue(`value of ${key}`, v);
19
+ }
20
+ }
21
+ function checkNameValue(what, v) {
22
+ if (!parse_key_1.pNameValue.parse(v).isOk) {
23
+ throw new error_1.K8tsMetadataError(`Invalid ${what}: ${v}`);
24
+ }
25
+ checkMetaString(what, v, 63);
26
+ }
27
+ function checkMetaString(thing, input, length) {
28
+ if (!parse_key_1.normalChar.parse(input[0]).isOk) {
29
+ throw new error_1.K8tsMetadataError(`${thing} must start with an alphanumeric character.`);
30
+ }
31
+ if (!parse_key_1.normalChar.parse(input[input.length - 1]).isOk) {
32
+ throw new error_1.K8tsMetadataError(`${thing} must end with an alphanumeric character.`);
33
+ }
34
+ if (thing.length > length) {
35
+ throw new error_1.K8tsMetadataError(`${thing} must be no more than ${length} characters.`);
36
+ }
37
+ }
38
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/utils/validate.ts"],"names":[],"mappings":";;AAIA,gDAUC;AACD,wCAKC;AACD,0CAUC;AA/BD,oCAA4C;AAC5C,4DAA8D;AAC9D,sDAA0F;AAE1F,SAAgB,kBAAkB,CAAC,GAAW,EAAE,CAAS;IACrD,MAAM,MAAM,GAAG,IAAA,yBAAQ,EAAC,GAAG,CAAC,CAAA;IAC5B,IAAI,CAAC,CAAC,MAAM,YAAY,iCAAkB,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,yBAAiB,CAAC,2CAA2C,GAAG,EAAE,CAAC,CAAA;IACjF,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC9B,eAAe,CAAC,YAAY,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;IAC7C,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QACpC,cAAc,CAAC,YAAY,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;IACxC,CAAC;AACL,CAAC;AACD,SAAgB,cAAc,CAAC,IAAY,EAAE,CAAS;IAClD,IAAI,CAAC,sBAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,IAAI,yBAAiB,CAAC,WAAW,IAAI,KAAK,CAAC,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;AAChC,CAAC;AACD,SAAgB,eAAe,CAAC,KAAa,EAAE,KAAa,EAAE,MAAc;IACxE,IAAI,CAAC,sBAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,yBAAiB,CAAC,GAAG,KAAK,6CAA6C,CAAC,CAAA;IACtF,CAAC;IACD,IAAI,CAAC,sBAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,IAAI,yBAAiB,CAAC,GAAG,KAAK,4CAA4C,CAAC,CAAA;IACrF,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,yBAAiB,CAAC,GAAG,KAAK,yBAAyB,MAAM,cAAc,CAAC,CAAA;IACtF,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@k8ts/metadata",
3
- "version": "0.10.3",
3
+ "version": "0.11.0",
4
4
  "description": "K8ts tools for working with k8ts metadata.",
5
5
  "keywords": [
6
6
  "k8ts",
@@ -32,12 +32,6 @@
32
32
  "import": "./dist/index.js",
33
33
  "default": "./dist/index.js",
34
34
  "types": "./dist/index.d.ts"
35
- },
36
- "./util": {
37
- "require": "./dist/util.js",
38
- "import": "./dist/util.js",
39
- "default": "./dist/util.js",
40
- "types": "./dist/util.d.ts"
41
35
  }
42
36
  },
43
37
  "main": "dist/index.js",
@@ -72,7 +66,7 @@
72
66
  "dependencies": {
73
67
  "doddle": "^7.3.1",
74
68
  "parjs": "^1.3.9",
75
- "what-are-you": "^0.2.0"
69
+ "what-are-you": "^0.3.0"
76
70
  },
77
71
  "devDependencies": {
78
72
  "@types/jest": "^30.0.0",
package/src/error.ts CHANGED
@@ -1,4 +1,4 @@
1
- export class MetadataError extends Error {
1
+ export class K8tsMetadataError extends Error {
2
2
  override name = "MetadataError"
3
3
  constructor(message: string, extra: Record<string, any> = {}) {
4
4
  super(message)
package/src/index.ts CHANGED
@@ -1,3 +1,2 @@
1
- export type { InputMeta } from "./input/dict-input"
2
- export { DomainPrefix, MetadataKey } from "./key/repr"
3
- export { Meta, type MetaLike } from "./meta"
1
+ export type { Metadata_Input } from "./input/dict-input"
2
+ export { Metadata } from "./meta"
@@ -1,19 +1,12 @@
1
- import { MetadataKey } from "../key"
2
- import type { Key } from "../key/types"
3
- import type { MetaLike } from "../meta"
1
+ import type { Metadata_Key_sDomain, Metadata_Key_sValue } from "./key/string-types"
4
2
 
5
3
  export namespace MetaInputParts {
6
4
  type Of<T extends string, V> = {
7
5
  [K in T]?: V
8
6
  }
9
- type Full = Nested & Of<Key.Domain, Nested>
10
- export type Nested = Of<Key.Value, string>
11
- export type Heading = Of<Key.Domain, Nested>
12
- export type Input = Full & Heading
7
+ type Full = Nested & Of<Metadata_Key_sDomain, Nested>
8
+ export type Nested = Of<Metadata_Key_sValue, string>
9
+ export type Input = Full
13
10
  }
14
11
 
15
- export type InputMeta =
16
- | MetaLike
17
- | MetaInputParts.Input
18
- | undefined
19
- | Iterable<readonly [MetadataKey, string]>
12
+ export type Metadata_Input = MetaInputParts.Input | undefined | Iterable<readonly [string, string]>
@@ -0,0 +1,7 @@
1
+ export * from "./dict-input"
2
+ export * from "./key/base"
3
+ export * from "./key/domain-prefix"
4
+ export * from "./key/metadata-key"
5
+ export * from "./key/parse-key"
6
+ export * from "./key/string-types"
7
+ export * from "./parse-dict"
@@ -0,0 +1,10 @@
1
+ export abstract class Metadata_Key_Base {
2
+ abstract get str(): string
3
+ equals(other: any): boolean {
4
+ return this.constructor === other.constructor && this.toString() === other.toString()
5
+ }
6
+
7
+ toString() {
8
+ return this.str
9
+ }
10
+ }
@@ -0,0 +1,14 @@
1
+ import { checkMetaString } from "../../utils/validate"
2
+ import { Metadata_Key_Base } from "./base"
3
+
4
+ export class Metadata_Key_Domain extends Metadata_Key_Base {
5
+ type = "domain" as const
6
+ constructor(private readonly _domain: string) {
7
+ super()
8
+ checkMetaString(`Section name ${this._domain}`, _domain, 253)
9
+ }
10
+
11
+ get str() {
12
+ return [this._domain].join("")
13
+ }
14
+ }
@@ -0,0 +1,90 @@
1
+ import { isNullish } from "what-are-you"
2
+ import { K8tsMetadataError } from "../../error"
3
+ import { checkMetaString } from "../../utils/validate"
4
+ import { Metadata_Key_Base } from "./base"
5
+ import { Metadata_Key_Domain } from "./domain-prefix"
6
+ import type { Metadata_Key_sPrefix, Metadata_Key_sValue } from "./string-types"
7
+
8
+ export class Metadata_Key_Value extends Metadata_Key_Base {
9
+ type = "full" as const
10
+ constructor(
11
+ private readonly _prefix: string,
12
+ private readonly _domain: string | undefined,
13
+ private readonly _name: string
14
+ ) {
15
+ super()
16
+ if (_domain) {
17
+ checkMetaString(`DNS prefix for ${this.str}`, _domain, 253)
18
+ }
19
+ checkMetaString(`Metadata name of ${this.str}`, _name, 63)
20
+ }
21
+
22
+ get metaType() {
23
+ switch (this._prefix) {
24
+ case "":
25
+ return "core"
26
+ case "%":
27
+ return "label"
28
+ case "#":
29
+ return "comment"
30
+ case "^":
31
+ return "annotation"
32
+ default:
33
+ throw new K8tsMetadataError(`Unknown prefix ${this._prefix}`)
34
+ }
35
+ }
36
+
37
+ get suffix() {
38
+ const parts = []
39
+ if (this._domain) {
40
+ parts.push(this._domain)
41
+ if (!this._domain.endsWith("/")) {
42
+ parts.push("/")
43
+ }
44
+ }
45
+ parts.push(this._name)
46
+ return parts.join("")
47
+ }
48
+
49
+ get str(): Metadata_Key_sValue {
50
+ return [this._prefix, this.suffix].join("") as Metadata_Key_sValue
51
+ }
52
+
53
+ get parent() {
54
+ if (!this._domain) {
55
+ return null
56
+ }
57
+ return new Metadata_Key_Domain(this._domain)
58
+ }
59
+
60
+ prefix(): Metadata_Key_sPrefix
61
+ prefix(prefix: Metadata_Key_sPrefix): this
62
+ prefix(prefix?: any) {
63
+ if (isNullish(prefix)) {
64
+ return this._prefix as Metadata_Key_sPrefix
65
+ }
66
+ return new Metadata_Key_Value(prefix, this._domain, this._name)
67
+ }
68
+
69
+ name(): string
70
+ name(name: string): this
71
+ name(name?: any) {
72
+ if (isNullish(name)) {
73
+ return this._name
74
+ }
75
+ return new Metadata_Key_Value(this._prefix, this._domain, name)
76
+ }
77
+
78
+ domain(): Metadata_Key_Domain
79
+ domain(domain: string | Metadata_Key_Domain): this
80
+ domain(domain?: any) {
81
+ if (isNullish(domain)) {
82
+ return this._domain ? new Metadata_Key_Domain(this._domain) : null
83
+ }
84
+ domain = domain instanceof Metadata_Key_Domain ? domain.str : domain
85
+ if (this._domain) {
86
+ throw new K8tsMetadataError("Already has a domain")
87
+ }
88
+ return new Metadata_Key_Value(this._prefix, domain, this._name)
89
+ }
90
+ }
@@ -1,8 +1,9 @@
1
1
  import { anyCharOf, anyStringOf, digit, letter, lower, string } from "parjs"
2
2
  import { many1, map, maybe, or, qthen, stringify, then, thenq } from "parjs/combinators"
3
3
 
4
- import { MetadataError } from "../error"
5
- import { DomainPrefix, MetadataKey } from "./repr"
4
+ import { K8tsMetadataError } from "../../error"
5
+ import { Metadata_Key_Domain } from "./domain-prefix"
6
+ import { Metadata_Key_Value } from "./metadata-key"
6
7
 
7
8
  const cPrefix = anyCharOf("%^#")
8
9
  const cSection = string("/")
@@ -17,20 +18,22 @@ const cInterior = normalChar.pipe(or(cExtra)).expects("alphanumeric, '-', '_', o
17
18
  export const pNameValue = cNameChar.pipe(many1(), stringify())
18
19
  const pSpecialKey = anyStringOf("namespace", "name").pipe(
19
20
  map(key => {
20
- return new MetadataKey("", "", key)
21
+ throw new K8tsMetadataError(
22
+ `Tried to set resource UID key '${key}' via metadata, which isn't allowed in k8ts. Modify the resource directly instead.`
23
+ )
21
24
  })
22
25
  )
23
26
  const pCleanKey = cInterior.pipe(many1(), stringify())
24
27
 
25
28
  const pSectionKey = pCleanKey.pipe(
26
29
  thenq(cSection),
27
- map(x => new DomainPrefix(x))
30
+ map(x => new Metadata_Key_Domain(x))
28
31
  )
29
32
 
30
33
  const pInnerKey = cPrefix.pipe(
31
34
  then(pCleanKey),
32
35
  map(([prefix, name]) => {
33
- return new MetadataKey(prefix, "", name)
36
+ return new Metadata_Key_Value(prefix, "", name)
34
37
  })
35
38
  )
36
39
 
@@ -38,9 +41,9 @@ const pKey = cPrefix.pipe(
38
41
  then(pCleanKey, cSection.pipe(qthen(pCleanKey), stringify(), maybe())),
39
42
  map(([prefix, nameOrSection, name]) => {
40
43
  if (name) {
41
- return new MetadataKey(prefix, nameOrSection, name)
44
+ return new Metadata_Key_Value(prefix, nameOrSection, name)
42
45
  }
43
- return new MetadataKey(prefix, "", nameOrSection)
46
+ return new Metadata_Key_Value(prefix, "", nameOrSection)
44
47
  }),
45
48
  or(pSpecialKey)
46
49
  )
@@ -59,8 +62,9 @@ export function parseOuterKey(key: string) {
59
62
  if (result.kind === "OK") {
60
63
  return result.value
61
64
  }
62
- throw new MetadataError(`Failed to parse key ${key}: ${result.toString()}`, {
65
+ throw new K8tsMetadataError(`Failed to parse key ${key}: ${result.toString()}`, {
63
66
  key,
64
67
  error: result.toString()
65
68
  })
66
69
  }
70
+ export { parseOuterKey as parseKey }