@igstack/app-catalog-shared-core 0.3.1-alpha-20260328155123 → 0.3.1-alpha-20260329185327

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.
@@ -20,19 +20,19 @@ export type ApprovalType = 'none' | 'service' | 'person' | 'other' | 'unknown';
20
20
  /**
21
21
  * Approval type options for UI display
22
22
  */
23
- export declare const APPROVAL_TYPES: ReadonlyArray<{
23
+ export declare const APPROVAL_TYPES: readonly {
24
24
  value: ApprovalType;
25
25
  label: string;
26
- }>;
26
+ }[];
27
27
  /**
28
28
  * Common fields for all approval method types
29
29
  */
30
30
  export interface BaseApprovalMethod {
31
31
  comment?: string;
32
- roles?: Array<AppRole>;
32
+ roles?: AppRole[];
33
33
  approvalPolicy?: string;
34
34
  postApprovalInstructions?: string;
35
- seeMoreUrls?: Array<string>;
35
+ seeMoreUrls?: string[];
36
36
  }
37
37
  /**
38
38
  * Service-based approval (bot or ticketing system)
@@ -106,22 +106,22 @@ export interface AppForCatalog {
106
106
  displayName: string;
107
107
  description?: string;
108
108
  approvalMethod?: ApprovalMethod;
109
- teams?: Array<string>;
109
+ teams?: string[];
110
110
  notes?: string;
111
- tags?: Array<string>;
111
+ tags?: string[];
112
112
  appUrl?: string;
113
- links?: Array<{
113
+ links?: {
114
114
  url: string;
115
115
  title?: string;
116
- }>;
116
+ }[];
117
117
  iconName?: string;
118
- screenshotIds?: Array<string>;
118
+ screenshotIds?: string[];
119
119
  }
120
120
  export interface AppCategory {
121
121
  id: string;
122
122
  name: string;
123
123
  }
124
124
  export interface AppCatalogData {
125
- apps: Array<AppForCatalog>;
126
- categories: Array<AppCategory>;
125
+ apps: AppForCatalog[];
126
+ categories: AppCategory[];
127
127
  }
@@ -1,8 +1,8 @@
1
1
  import { Primitive } from 'type-fest';
2
- export type NullToUndefined<T> = T extends null ? undefined : T extends Primitive | Function | Date | RegExp ? T : T extends Array<infer U> ? Array<NullToUndefined<U>> : T extends Map<infer K, infer V> ? Map<K, NullToUndefined<V>> : T extends Set<infer U> ? Set<NullToUndefined<U>> : T extends object ? {
2
+ export type NullToUndefined<T> = T extends null ? undefined : T extends Primitive | Function | Date | RegExp ? T : T extends (infer U)[] ? NullToUndefined<U>[] : T extends Map<infer K, infer V> ? Map<K, NullToUndefined<V>> : T extends Set<infer U> ? Set<NullToUndefined<U>> : T extends object ? {
3
3
  [K in keyof T]: NullToUndefined<T[K]>;
4
4
  } : unknown;
5
- export type UndefinedToNull<T> = T extends undefined ? null : T extends Primitive | Function | Date | RegExp ? T : T extends Array<infer U> ? Array<UndefinedToNull<U>> : T extends Map<infer K, infer V> ? Map<K, UndefinedToNull<V>> : T extends Set<infer U> ? Set<NullToUndefined<U>> : T extends object ? {
5
+ export type UndefinedToNull<T> = T extends undefined ? null : T extends Primitive | Function | Date | RegExp ? T : T extends (infer U)[] ? UndefinedToNull<U>[] : T extends Map<infer K, infer V> ? Map<K, UndefinedToNull<V>> : T extends Set<infer U> ? Set<NullToUndefined<U>> : T extends object ? {
6
6
  [K in keyof T]: UndefinedToNull<T[K]>;
7
7
  } : unknown;
8
8
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"nullToUndefined.js","sources":["../../src/nullToUndefined.ts"],"sourcesContent":["import type { Primitive } from 'type-fest'\n\n/*\n Taken from https://gist.github.com/tkrotoff/a6baf96eb6b61b445a9142e5555511a0\n * [Generic way to convert all instances of null to undefined in TypeScript](https://stackoverflow.com/q/50374869)\n *\n * This only works with JS objects hence the file name *Object*Values\n *\n * [\"I intend to stop using `null` in my JS code in favor of `undefined`\"](https://github.com/sindresorhus/meta/discussions/7)\n * [Proposal: NullToUndefined and UndefinedToNull](https://github.com/sindresorhus/type-fest/issues/603)\n *\n * Types implementation inspired by:\n * - https://github.com/sindresorhus/type-fest/blob/v2.12.2/source/delimiter-cased-properties-deep.d.ts\n * - https://github.com/sindresorhus/type-fest/blob/v2.12.2/source/readonly-deep.d.ts\n *\n * https://gist.github.com/tkrotoff/a6baf96eb6b61b445a9142e5555511a0\n */\nexport type NullToUndefined<T> = T extends null\n ? undefined\n : T extends Primitive | Function | Date | RegExp\n ? T\n : T extends Array<infer U>\n ? Array<NullToUndefined<U>>\n : T extends Map<infer K, infer V>\n ? Map<K, NullToUndefined<V>>\n : T extends Set<infer U>\n ? Set<NullToUndefined<U>>\n : T extends object\n ? { [K in keyof T]: NullToUndefined<T[K]> }\n : unknown\n\nexport type UndefinedToNull<T> = T extends undefined\n ? null\n : T extends Primitive | Function | Date | RegExp\n ? T\n : T extends Array<infer U>\n ? Array<UndefinedToNull<U>>\n : T extends Map<infer K, infer V>\n ? Map<K, UndefinedToNull<V>>\n : T extends Set<infer U>\n ? Set<NullToUndefined<U>>\n : T extends object\n ? { [K in keyof T]: UndefinedToNull<T[K]> }\n : unknown\n\nfunction _nullToUndefined<T>(obj: T): NullToUndefined<T> {\n if (obj === null) {\n return undefined as any\n }\n\n if (typeof obj === 'object') {\n if (obj instanceof Map) {\n obj.forEach((value, key) => obj.set(key, _nullToUndefined(value)))\n } else {\n for (const key in obj) {\n obj[key] = _nullToUndefined(obj[key]) as any\n }\n }\n }\n\n return obj as any\n}\n\n/**\n * Recursively converts all null values to undefined.\n *\n * @param obj object to convert\n * @returns a copy of the object with all its null values converted to undefined\n */\nexport function nullToUndefined<\n T,\n // Can cause: \"Type instantiation is excessively deep and possibly infinite.\"\n // extends Jsonifiable\n>(obj: T) {\n return _nullToUndefined(structuredClone(obj))\n}\n\nfunction _undefinedToNull<T>(obj: T): UndefinedToNull<T> {\n if (obj === undefined) {\n return null as any\n }\n\n if (typeof obj === 'object') {\n if (obj instanceof Map) {\n obj.forEach((value, key) => obj.set(key, _undefinedToNull(value)))\n } else {\n for (const key in obj) {\n obj[key] = _undefinedToNull(obj[key]) as any\n }\n }\n }\n\n return obj as any\n}\n\n/**\n * Recursively converts all undefined values to null.\n *\n * @param obj object to convert\n * @returns a copy of the object with all its undefined values converted to null\n */\nexport function undefinedToNull<\n T,\n // Can cause: \"Type instantiation is excessively deep and possibly infinite.\"\n // extends Jsonifiable\n>(obj: T) {\n return _undefinedToNull(structuredClone(obj))\n}\n"],"names":[],"mappings":"AA6CA,SAAS,iBAAoB,KAA4B;AACvD,MAAI,QAAQ,MAAM;AAChB,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,QAAQ,UAAU;AAC3B,QAAI,eAAe,KAAK;AACtB,UAAI,QAAQ,CAAC,OAAO,QAAQ,IAAI,IAAI,KAAK,iBAAiB,KAAK,CAAC,CAAC;AAAA,IACnE,OAAO;AACL,iBAAW,OAAO,KAAK;AACrB,YAAI,GAAG,IAAI,iBAAiB,IAAI,GAAG,CAAC;AAAA,MACtC;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAQO,SAAS,gBAId,KAAQ;AACR,SAAO,iBAAiB,gBAAgB,GAAG,CAAC;AAC9C;AAEA,SAAS,iBAAoB,KAA4B;AACvD,MAAI,QAAQ,QAAW;AACrB,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,QAAQ,UAAU;AAC3B,QAAI,eAAe,KAAK;AACtB,UAAI,QAAQ,CAAC,OAAO,QAAQ,IAAI,IAAI,KAAK,iBAAiB,KAAK,CAAC,CAAC;AAAA,IACnE,OAAO;AACL,iBAAW,OAAO,KAAK;AACrB,YAAI,GAAG,IAAI,iBAAiB,IAAI,GAAG,CAAC;AAAA,MACtC;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAQO,SAAS,gBAId,KAAQ;AACR,SAAO,iBAAiB,gBAAgB,GAAG,CAAC;AAC9C;"}
1
+ {"version":3,"file":"nullToUndefined.js","sources":["../../src/nullToUndefined.ts"],"sourcesContent":["import type { Primitive } from 'type-fest'\n\n/*\n Taken from https://gist.github.com/tkrotoff/a6baf96eb6b61b445a9142e5555511a0\n * [Generic way to convert all instances of null to undefined in TypeScript](https://stackoverflow.com/q/50374869)\n *\n * This only works with JS objects hence the file name *Object*Values\n *\n * [\"I intend to stop using `null` in my JS code in favor of `undefined`\"](https://github.com/sindresorhus/meta/discussions/7)\n * [Proposal: NullToUndefined and UndefinedToNull](https://github.com/sindresorhus/type-fest/issues/603)\n *\n * Types implementation inspired by:\n * - https://github.com/sindresorhus/type-fest/blob/v2.12.2/source/delimiter-cased-properties-deep.d.ts\n * - https://github.com/sindresorhus/type-fest/blob/v2.12.2/source/readonly-deep.d.ts\n *\n * https://gist.github.com/tkrotoff/a6baf96eb6b61b445a9142e5555511a0\n */\nexport type NullToUndefined<T> = T extends null\n ? undefined\n : T extends Primitive | Function | Date | RegExp\n ? T\n : T extends (infer U)[]\n ? NullToUndefined<U>[]\n : T extends Map<infer K, infer V>\n ? Map<K, NullToUndefined<V>>\n : T extends Set<infer U>\n ? Set<NullToUndefined<U>>\n : T extends object\n ? { [K in keyof T]: NullToUndefined<T[K]> }\n : unknown\n\nexport type UndefinedToNull<T> = T extends undefined\n ? null\n : T extends Primitive | Function | Date | RegExp\n ? T\n : T extends (infer U)[]\n ? UndefinedToNull<U>[]\n : T extends Map<infer K, infer V>\n ? Map<K, UndefinedToNull<V>>\n : T extends Set<infer U>\n ? Set<NullToUndefined<U>>\n : T extends object\n ? { [K in keyof T]: UndefinedToNull<T[K]> }\n : unknown\n\nfunction _nullToUndefined<T>(obj: T): NullToUndefined<T> {\n if (obj === null) {\n return undefined as any\n }\n\n if (typeof obj === 'object') {\n if (obj instanceof Map) {\n obj.forEach((value, key) => obj.set(key, _nullToUndefined(value)))\n } else {\n for (const key in obj) {\n obj[key] = _nullToUndefined(obj[key]) as any\n }\n }\n }\n\n return obj as any\n}\n\n/**\n * Recursively converts all null values to undefined.\n *\n * @param obj object to convert\n * @returns a copy of the object with all its null values converted to undefined\n */\nexport function nullToUndefined<\n T,\n // Can cause: \"Type instantiation is excessively deep and possibly infinite.\"\n // extends Jsonifiable\n>(obj: T) {\n return _nullToUndefined(structuredClone(obj))\n}\n\nfunction _undefinedToNull<T>(obj: T): UndefinedToNull<T> {\n if (obj === undefined) {\n return null as any\n }\n\n if (typeof obj === 'object') {\n if (obj instanceof Map) {\n obj.forEach((value, key) => obj.set(key, _undefinedToNull(value)))\n } else {\n for (const key in obj) {\n obj[key] = _undefinedToNull(obj[key]) as any\n }\n }\n }\n\n return obj as any\n}\n\n/**\n * Recursively converts all undefined values to null.\n *\n * @param obj object to convert\n * @returns a copy of the object with all its undefined values converted to null\n */\nexport function undefinedToNull<\n T,\n // Can cause: \"Type instantiation is excessively deep and possibly infinite.\"\n // extends Jsonifiable\n>(obj: T) {\n return _undefinedToNull(structuredClone(obj))\n}\n"],"names":[],"mappings":"AA6CA,SAAS,iBAAoB,KAA4B;AACvD,MAAI,QAAQ,MAAM;AAChB,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,QAAQ,UAAU;AAC3B,QAAI,eAAe,KAAK;AACtB,UAAI,QAAQ,CAAC,OAAO,QAAQ,IAAI,IAAI,KAAK,iBAAiB,KAAK,CAAC,CAAC;AAAA,IACnE,OAAO;AACL,iBAAW,OAAO,KAAK;AACrB,YAAI,GAAG,IAAI,iBAAiB,IAAI,GAAG,CAAC;AAAA,MACtC;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAQO,SAAS,gBAId,KAAQ;AACR,SAAO,iBAAiB,gBAAgB,GAAG,CAAC;AAC9C;AAEA,SAAS,iBAAoB,KAA4B;AACvD,MAAI,QAAQ,QAAW;AACrB,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,QAAQ,UAAU;AAC3B,QAAI,eAAe,KAAK;AACtB,UAAI,QAAQ,CAAC,OAAO,QAAQ,IAAI,IAAI,KAAK,iBAAiB,KAAK,CAAC,CAAC;AAAA,IACnE,OAAO;AACL,iBAAW,OAAO,KAAK;AACrB,YAAI,GAAG,IAAI,iBAAiB,IAAI,GAAG,CAAC;AAAA,MACtC;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAQO,SAAS,gBAId,KAAQ;AACR,SAAO,iBAAiB,gBAAgB,GAAG,CAAC;AAC9C;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@igstack/app-catalog-shared-core",
3
- "version": "0.3.1-alpha-20260328155123",
3
+ "version": "0.3.1-alpha-20260329185327",
4
4
  "description": "Shared core utilities for App Catalog",
5
5
  "homepage": "https://github.com/lislon/app-catalog",
6
6
  "repository": {
@@ -31,10 +31,10 @@ export type ApprovalType = 'none' | 'service' | 'person' | 'other' | 'unknown'
31
31
  /**
32
32
  * Approval type options for UI display
33
33
  */
34
- export const APPROVAL_TYPES: ReadonlyArray<{
34
+ export const APPROVAL_TYPES: readonly {
35
35
  value: ApprovalType
36
36
  label: string
37
- }> = [
37
+ }[] = [
38
38
  { value: 'none', label: 'None' },
39
39
  { value: 'service', label: 'Service' },
40
40
  { value: 'person', label: 'Person' },
@@ -47,10 +47,10 @@ export const APPROVAL_TYPES: ReadonlyArray<{
47
47
  */
48
48
  export interface BaseApprovalMethod {
49
49
  comment?: string
50
- roles?: Array<AppRole>
50
+ roles?: AppRole[]
51
51
  approvalPolicy?: string
52
52
  postApprovalInstructions?: string
53
- seeMoreUrls?: Array<string>
53
+ seeMoreUrls?: string[]
54
54
  }
55
55
 
56
56
  /**
@@ -152,13 +152,13 @@ export interface AppForCatalog {
152
152
  displayName: string
153
153
  description?: string
154
154
  approvalMethod?: ApprovalMethod
155
- teams?: Array<string> // Teams that use this app
155
+ teams?: string[] // Teams that use this app
156
156
  notes?: string
157
- tags?: Array<string>
157
+ tags?: string[]
158
158
  appUrl?: string
159
- links?: Array<{ url: string; title?: string }>
159
+ links?: { url: string; title?: string }[]
160
160
  iconName?: string
161
- screenshotIds?: Array<string>
161
+ screenshotIds?: string[]
162
162
  }
163
163
 
164
164
  // Derived catalog data returned by backend
@@ -168,6 +168,6 @@ export interface AppCategory {
168
168
  }
169
169
 
170
170
  export interface AppCatalogData {
171
- apps: Array<AppForCatalog>
172
- categories: Array<AppCategory>
171
+ apps: AppForCatalog[]
172
+ categories: AppCategory[]
173
173
  }
@@ -19,8 +19,8 @@ export type NullToUndefined<T> = T extends null
19
19
  ? undefined
20
20
  : T extends Primitive | Function | Date | RegExp
21
21
  ? T
22
- : T extends Array<infer U>
23
- ? Array<NullToUndefined<U>>
22
+ : T extends (infer U)[]
23
+ ? NullToUndefined<U>[]
24
24
  : T extends Map<infer K, infer V>
25
25
  ? Map<K, NullToUndefined<V>>
26
26
  : T extends Set<infer U>
@@ -33,8 +33,8 @@ export type UndefinedToNull<T> = T extends undefined
33
33
  ? null
34
34
  : T extends Primitive | Function | Date | RegExp
35
35
  ? T
36
- : T extends Array<infer U>
37
- ? Array<UndefinedToNull<U>>
36
+ : T extends (infer U)[]
37
+ ? UndefinedToNull<U>[]
38
38
  : T extends Map<infer K, infer V>
39
39
  ? Map<K, UndefinedToNull<V>>
40
40
  : T extends Set<infer U>