@spottoai/types-package 1.0.2-beta.106 → 1.0.2-beta.107

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 CHANGED
@@ -4,6 +4,7 @@ A shared TypeScript interfaces package. This package contains common interfaces
4
4
 
5
5
  ## Features
6
6
 
7
+
7
8
  - **Shared Interfaces**: Common TypeScript interfaces for API requests/responses, database models, frontend components, and backend services
8
9
  - **Git Dependencies**: Designed to work with Git dependencies
9
10
  - **TypeScript Declaration Files**: Built with declaration files for better IDE support
@@ -0,0 +1,153 @@
1
+ export type InventorySource = 'manual_upload' | 'sas_url' | 'automatic';
2
+ export type BlobKind = 'block' | 'page' | 'append';
3
+ export type AccessPattern = 'hot' | 'cool' | 'cold' | 'archive' | 'unknown';
4
+ export type AgeBucket = '0-30d' | '30-90d' | '90-180d' | '180-365d' | '365d+';
5
+ export interface InventoryUserContext {
6
+ retentionDays?: number;
7
+ canDeleteOld?: boolean;
8
+ fileTypes?: string[];
9
+ }
10
+ export interface InventoryIssue {
11
+ type: 'page_blob_backups' | 'stale_append_blobs' | 'data_beyond_retention';
12
+ severity: 'high' | 'medium' | 'low';
13
+ affectedCount: number;
14
+ affectedSizeGB: number;
15
+ currentMonthlyCost: number;
16
+ potentialSavings: number;
17
+ recommendation: string;
18
+ migrationSteps: string[];
19
+ sampleBlobs?: string[];
20
+ }
21
+ export interface PrefixAnalysis {
22
+ prefix: string;
23
+ blobCount: number;
24
+ sizeGB: number;
25
+ dominantBlobType: BlobKind;
26
+ dominantAccessPattern: Exclude<AccessPattern, 'unknown'>;
27
+ }
28
+ export interface ContainerAnalysis {
29
+ containerName: string;
30
+ totalBlobs: number;
31
+ totalSizeGB: number;
32
+ blobTypeDistribution: {
33
+ block: {
34
+ count: number;
35
+ sizeGB: number;
36
+ };
37
+ page: {
38
+ count: number;
39
+ sizeGB: number;
40
+ };
41
+ append: {
42
+ count: number;
43
+ sizeGB: number;
44
+ };
45
+ };
46
+ accessPatternDistribution: Record<Exclude<AccessPattern, 'unknown'>, {
47
+ count: number;
48
+ sizeGB: number;
49
+ }>;
50
+ topPrefixes: PrefixAnalysis[];
51
+ }
52
+ export interface InventoryAnalysisResult {
53
+ subscriptionId?: string;
54
+ resourceId?: string;
55
+ analyzedAt: string;
56
+ inventorySource: InventorySource;
57
+ summary: {
58
+ totalBlobs: number;
59
+ totalSizeGB: number;
60
+ analyzedBlobs: number;
61
+ containerCount: number;
62
+ };
63
+ blobTypeDistribution: {
64
+ block: {
65
+ count: number;
66
+ sizeGB: number;
67
+ canLifecycle: true;
68
+ };
69
+ page: {
70
+ count: number;
71
+ sizeGB: number;
72
+ canLifecycle: false;
73
+ };
74
+ append: {
75
+ count: number;
76
+ sizeGB: number;
77
+ staleCount: number;
78
+ staleSizeGB: number;
79
+ };
80
+ };
81
+ accessPatternDistribution: Record<AccessPattern, {
82
+ count: number;
83
+ sizeGB: number;
84
+ percentage?: number;
85
+ }>;
86
+ ageDistribution: Record<AgeBucket, {
87
+ count: number;
88
+ sizeGB: number;
89
+ /** Per-blob-type breakdown, always emitted by the analyzer */
90
+ distributions: Record<BlobKind, {
91
+ count: number;
92
+ sizeGB: number;
93
+ }>;
94
+ }>;
95
+ containers: ContainerAnalysis[];
96
+ issues: InventoryIssue[];
97
+ userContext?: InventoryUserContext;
98
+ }
99
+ export interface InventoryAnalysisProgress {
100
+ totalBlobs: number;
101
+ processedBlobs: number;
102
+ percentage: number;
103
+ }
104
+ export interface InventoryAnalysisJob {
105
+ jobId: string;
106
+ subscriptionId: string;
107
+ storageAccountId: string;
108
+ status: 'queued' | 'processing' | 'completed' | 'failed';
109
+ source: InventorySource;
110
+ uploadedFileUrl?: string;
111
+ sasUrl?: string;
112
+ progress?: InventoryAnalysisProgress;
113
+ resultPath?: string;
114
+ error?: {
115
+ code: string;
116
+ message: string;
117
+ };
118
+ createdAt: string;
119
+ updatedAt: string;
120
+ completedAt?: string;
121
+ }
122
+ export interface InventoryAnalysisStatus {
123
+ jobId: string;
124
+ status: 'queued' | 'processing' | 'completed' | 'failed';
125
+ createdAt?: string;
126
+ updatedAt?: string;
127
+ completedAt?: string;
128
+ errorMessage?: string;
129
+ resultPath?: string;
130
+ userContext?: InventoryUserContext;
131
+ subscriptionId?: string;
132
+ resourceId?: string;
133
+ storageAccount?: string;
134
+ resourceGroup?: string;
135
+ }
136
+ export interface InventoryManifestFile {
137
+ blob: string;
138
+ size: number;
139
+ }
140
+ export interface InventoryManifest {
141
+ files: InventoryManifestFile[];
142
+ }
143
+ export interface BlobInventoryUploadResponse {
144
+ jobId: string;
145
+ status?: InventoryAnalysisStatus;
146
+ resultPath?: string;
147
+ }
148
+ export type InventoryStatusOrResult = InventoryAnalysisStatus | (InventoryAnalysisResult & {
149
+ jobId?: string;
150
+ status?: InventoryAnalysisStatus['status'];
151
+ resultPath?: string;
152
+ });
153
+ //# sourceMappingURL=storage-inventory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-inventory.d.ts","sourceRoot":"","sources":["../../src/azure/storage-inventory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=storage-inventory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-inventory.js","sourceRoot":"","sources":["../../src/azure/storage-inventory.ts"],"names":[],"mappings":""}
package/dist/index.d.ts CHANGED
@@ -15,6 +15,7 @@ export * from './azure/views';
15
15
  export * from './azure/security';
16
16
  export * from './azure/serviceRetirement';
17
17
  export * from './azure/costEstimation';
18
+ export * from './azure/storage-inventory';
18
19
  export * from './accounts';
19
20
  export * from './users';
20
21
  export * from './common';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,MAAM,CAAC;AACrB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,MAAM,CAAC;AACrB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -31,6 +31,7 @@ __exportStar(require("./azure/views"), exports);
31
31
  __exportStar(require("./azure/security"), exports);
32
32
  __exportStar(require("./azure/serviceRetirement"), exports);
33
33
  __exportStar(require("./azure/costEstimation"), exports);
34
+ __exportStar(require("./azure/storage-inventory"), exports);
34
35
  __exportStar(require("./accounts"), exports);
35
36
  __exportStar(require("./users"), exports);
36
37
  __exportStar(require("./common"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iEAAiE;AACjE,iDAA+B;AAC/B,kDAAgC;AAChC,uDAAqC;AACrC,kDAAgC;AAChC,kDAAgC;AAChC,mDAAiC;AACjC,iDAA+B;AAC/B,0DAAwC;AACxC,8DAA4C;AAC5C,oDAAkC;AAClC,kDAAgC;AAChC,wDAAsC;AACtC,gDAA8B;AAC9B,mDAAiC;AACjC,4DAA0C;AAC1C,yDAAuC;AACvC,6CAA2B;AAC3B,0CAAwB;AACxB,2CAAyB;AACzB,4CAA0B;AAC1B,uCAAqB;AACrB,2CAAyB;AACzB,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iEAAiE;AACjE,iDAA+B;AAC/B,kDAAgC;AAChC,uDAAqC;AACrC,kDAAgC;AAChC,kDAAgC;AAChC,mDAAiC;AACjC,iDAA+B;AAC/B,0DAAwC;AACxC,8DAA4C;AAC5C,oDAAkC;AAClC,kDAAgC;AAChC,wDAAsC;AACtC,gDAA8B;AAC9B,mDAAiC;AACjC,4DAA0C;AAC1C,yDAAuC;AACvC,4DAA0C;AAC1C,6CAA2B;AAC3B,0CAAwB;AACxB,2CAAyB;AACzB,4CAA0B;AAC1B,uCAAqB;AACrB,2CAAyB;AACzB,6CAA2B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spottoai/types-package",
3
- "version": "1.0.2-beta.106",
3
+ "version": "1.0.2-beta.107",
4
4
  "description": "Shared TypeScript interfaces for SpottoAI",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",