@en-solutions/tgm-client-sdk 1.6.21 → 1.8.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.
@@ -76,6 +76,8 @@ export interface ErpEntityMappingRequest {
76
76
  conflictResolution?: string;
77
77
  syncFilter?: Record<string, any>;
78
78
  fieldMappings?: FieldMappingRequest[];
79
+ /** When tgmEntityType=CUSTOM, the CMS collection name to sync to */
80
+ customCollectionName?: string;
79
81
  }
80
82
  export interface FieldMappingRequest {
81
83
  tgmFieldName: string;
@@ -186,3 +188,84 @@ export interface ErpDashboardResponse {
186
188
  connectionHealth?: any[];
187
189
  upcomingSyncs?: any[];
188
190
  }
191
+ export interface ErpEntitySchema {
192
+ entityName: string;
193
+ displayName: string;
194
+ odataPath?: string;
195
+ fields: ErpFieldSchema[];
196
+ keyFields: string[];
197
+ isReadOnly: boolean;
198
+ }
199
+ export interface ErpFieldSchema {
200
+ fieldName: string;
201
+ displayName: string;
202
+ dataType: 'STRING' | 'NUMBER' | 'DATE' | 'BOOLEAN' | 'ENUM' | string;
203
+ maxLength?: number;
204
+ isNullable: boolean;
205
+ isKey: boolean;
206
+ enumValues?: string[];
207
+ }
208
+ export interface SchemaDiscoveryResponse {
209
+ connectionId: number;
210
+ entities: ErpEntitySchema[];
211
+ discoveredAt: string;
212
+ }
213
+ export interface ConnectorInfo {
214
+ connectorName: string;
215
+ supportedErpTypes: string[];
216
+ supportedAuthTypes: string[];
217
+ capabilities: string[];
218
+ description: string;
219
+ }
220
+ export interface MappingTemplateDefinition {
221
+ templateId: string;
222
+ name: string;
223
+ description: string;
224
+ erpType: string;
225
+ version: string;
226
+ entityMappings: EntityMappingTemplate[];
227
+ }
228
+ export interface EntityMappingTemplate {
229
+ tgmEntityType: string;
230
+ tgmEntityDisplayName: string;
231
+ erpEntityName: string;
232
+ erpEntityDisplayName: string;
233
+ defaultDirection: 'INBOUND' | 'OUTBOUND' | 'BIDIRECTIONAL';
234
+ fieldMappings: FieldMappingTemplate[];
235
+ }
236
+ export interface FieldMappingTemplate {
237
+ tgmField: string;
238
+ tgmFieldDisplayName: string;
239
+ erpField: string;
240
+ erpFieldDisplayName: string;
241
+ dataType: string;
242
+ syncDirection: 'INBOUND' | 'OUTBOUND' | 'BIDIRECTIONAL';
243
+ isKeyField: boolean;
244
+ transformation?: Record<string, any>;
245
+ defaultValue?: string;
246
+ required: boolean;
247
+ }
248
+ export interface ApplyTemplateRequest {
249
+ templateId: string;
250
+ overwriteExisting?: boolean;
251
+ }
252
+ export interface SandboxSyncRequest {
253
+ entityType?: string;
254
+ maxRecords?: number;
255
+ }
256
+ export interface SandboxSyncResult {
257
+ jobId: number;
258
+ status: string;
259
+ preview: SandboxPreviewRecord[];
260
+ totalFetched: number;
261
+ totalTransformed: number;
262
+ errors: string[];
263
+ }
264
+ export interface SandboxPreviewRecord {
265
+ erpId: string;
266
+ erpEntityName: string;
267
+ tgmEntityType: string;
268
+ action: 'CREATE' | 'UPDATE' | 'SKIP';
269
+ transformedData: Record<string, any>;
270
+ originalData: Record<string, any>;
271
+ }
@@ -0,0 +1,166 @@
1
+ export interface ContentTypeSchema {
2
+ kind?: string;
3
+ collectionName: string;
4
+ info: {
5
+ singularName: string;
6
+ pluralName: string;
7
+ displayName: string;
8
+ description?: string;
9
+ };
10
+ options?: {
11
+ draftAndPublish?: boolean;
12
+ };
13
+ attributes: Record<string, FieldDefinition>;
14
+ }
15
+ export interface FieldDefinition {
16
+ name: string;
17
+ type: 'string' | 'text' | 'richtext' | 'integer' | 'biginteger' | 'float' | 'decimal' | 'boolean' | 'date' | 'time' | 'datetime' | 'json' | 'enumeration' | 'email' | 'media' | 'relation';
18
+ required?: boolean;
19
+ unique?: boolean;
20
+ private?: boolean;
21
+ default?: any;
22
+ minLength?: number;
23
+ maxLength?: number;
24
+ min?: number;
25
+ max?: number;
26
+ regex?: string;
27
+ enum?: string[];
28
+ relation?: 'oneToOne' | 'oneToMany' | 'manyToOne' | 'manyToMany';
29
+ target?: string;
30
+ allowedTypes?: string[];
31
+ multiple?: boolean;
32
+ }
33
+ export interface CmsSavedView {
34
+ id?: number;
35
+ collectionName?: string;
36
+ userId?: number;
37
+ viewName: string;
38
+ isDefault?: boolean;
39
+ filterConfig?: Record<string, any>;
40
+ columnConfig?: string[];
41
+ sortConfig?: {
42
+ field: string;
43
+ order: 'ASC' | 'DESC';
44
+ };
45
+ createdAt?: string;
46
+ updatedAt?: string;
47
+ }
48
+ export interface CmsValidationRule {
49
+ id?: number;
50
+ collectionName?: string;
51
+ ruleName: string;
52
+ ruleType: 'REQUIRED_IF' | 'COMPARISON' | 'REGEX' | 'CUSTOM_EXPRESSION';
53
+ ruleConfig: Record<string, any>;
54
+ errorMessage: string;
55
+ isActive?: boolean;
56
+ displayOrder?: number;
57
+ createdAt?: string;
58
+ updatedAt?: string;
59
+ }
60
+ export interface CmsRecordType {
61
+ id?: number;
62
+ collectionName?: string;
63
+ typeName: string;
64
+ displayName: string;
65
+ description?: string;
66
+ icon?: string;
67
+ color?: string;
68
+ isDefault?: boolean;
69
+ isActive?: boolean;
70
+ fieldOverrides?: Record<string, any>;
71
+ createdAt?: string;
72
+ updatedAt?: string;
73
+ }
74
+ export interface CmsPageLayout {
75
+ id?: number;
76
+ collectionName?: string;
77
+ layoutName: string;
78
+ isDefault?: boolean;
79
+ recordTypeId?: number;
80
+ sections: CmsLayoutSection[];
81
+ createdAt?: string;
82
+ updatedAt?: string;
83
+ }
84
+ export interface CmsLayoutSection {
85
+ title: string;
86
+ columns: number;
87
+ fields: string[];
88
+ }
89
+ export interface CmsFormulaField {
90
+ id?: number;
91
+ collectionName?: string;
92
+ fieldName: string;
93
+ label: string;
94
+ formula: string;
95
+ resultType: 'NUMBER' | 'STRING' | 'DATE' | 'BOOLEAN';
96
+ displayOrder?: number;
97
+ isActive?: boolean;
98
+ createdAt?: string;
99
+ }
100
+ export interface CmsWorkflowRule {
101
+ id?: number;
102
+ collectionName?: string;
103
+ ruleName: string;
104
+ triggerEvent: 'ON_CREATE' | 'ON_UPDATE' | 'ON_CREATE_OR_UPDATE';
105
+ isActive?: boolean;
106
+ evaluationOrder?: number;
107
+ conditionConfig?: Record<string, any>;
108
+ actions: CmsWorkflowAction[];
109
+ createdAt?: string;
110
+ }
111
+ export interface CmsWorkflowAction {
112
+ type: 'FIELD_UPDATE' | 'NOTIFICATION' | 'LOG';
113
+ field?: string;
114
+ value?: any;
115
+ message?: string;
116
+ }
117
+ export interface CmsApprovalProcess {
118
+ id?: number;
119
+ collectionName?: string;
120
+ processName: string;
121
+ isActive?: boolean;
122
+ triggerField: string;
123
+ triggerValue: string;
124
+ finalApproveValue?: string;
125
+ finalRejectValue?: string;
126
+ steps: CmsApprovalStep[];
127
+ notifyOnSubmit?: boolean;
128
+ notifyOnApprove?: boolean;
129
+ notifyOnReject?: boolean;
130
+ createdAt?: string;
131
+ }
132
+ export interface CmsApprovalStep {
133
+ order: number;
134
+ name: string;
135
+ approverField?: string;
136
+ approverRole?: string;
137
+ }
138
+ export interface CmsApprovalInstance {
139
+ id?: number;
140
+ processId: number;
141
+ collectionName?: string;
142
+ recordId: number;
143
+ currentStep?: number;
144
+ status?: 'PENDING' | 'APPROVED' | 'REJECTED' | 'CANCELLED';
145
+ submittedBy?: number;
146
+ submittedAt?: string;
147
+ completedAt?: string;
148
+ comments?: string;
149
+ stepHistory?: any[];
150
+ }
151
+ export interface CmsRollupResult {
152
+ result: any;
153
+ function: string;
154
+ targetCollection: string;
155
+ }
156
+ export interface CmsDataResponse<T = any> {
157
+ data: T;
158
+ meta?: {
159
+ pagination?: {
160
+ page: number;
161
+ pageSize: number;
162
+ pageCount: number;
163
+ total: number;
164
+ };
165
+ };
166
+ }
@@ -22,7 +22,6 @@ export interface Company {
22
22
  appFont?: string;
23
23
  reportFonts?: string;
24
24
  appLanguage?: string;
25
- CompanyCurrency?: string;
26
25
  companyCurrency?: string;
27
26
  systemIsolationSettings?: string;
28
27
  woStaffProfileConfig?: string;
@@ -40,10 +40,23 @@ export declare const TgmEntityType: {
40
40
  readonly LOCATION: "LOCATION";
41
41
  readonly UNIT: "UNIT";
42
42
  readonly COMPONENT: "COMPONENT";
43
+ readonly SENSOR: "SENSOR";
44
+ readonly SENSOR_READING: "SENSOR_READING";
43
45
  readonly USER: "USER";
44
46
  readonly INSPECTION: "INSPECTION";
47
+ readonly MAINTENANCE_RECORD: "MAINTENANCE_RECORD";
48
+ readonly MAINTENANCE_PLAN: "MAINTENANCE_PLAN";
45
49
  readonly FAILURE: "FAILURE";
50
+ readonly MATERIAL_ITEM: "MATERIAL_ITEM";
51
+ readonly MATERIAL_CONSUMABLE: "MATERIAL_CONSUMABLE";
52
+ readonly SUPPLIER: "SUPPLIER";
46
53
  readonly INVENTORY: "INVENTORY";
47
54
  readonly INVOICE: "INVOICE";
55
+ readonly PURCHASE_ORDER: "PURCHASE_ORDER";
56
+ readonly GOODS_RECEIPT: "GOODS_RECEIPT";
57
+ readonly STOCK_MOVEMENT: "STOCK_MOVEMENT";
58
+ readonly WAREHOUSE: "WAREHOUSE";
59
+ readonly STOCK_COUNT: "STOCK_COUNT";
60
+ readonly CUSTOM: "CUSTOM";
48
61
  };
49
62
  export type TgmEntityType = (typeof TgmEntityType)[keyof typeof TgmEntityType];
@@ -1,7 +1,7 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { TgmHttpClient } from '../../core/http-client.service';
3
3
  import { ApiResponse } from '../../models/base.models';
4
- import { ErpConnectionRequest, ErpConnectionResponse, ErpEntityMappingRequest, ErpEntityMappingResponse, ErpSyncJobResponse, SyncScheduleConfigRequest, SyncScheduleConfigResponse, ErpDashboardResponse } from '../../models/admin/erp.models';
4
+ import { ErpConnectionRequest, ErpConnectionResponse, ErpEntityMappingRequest, ErpEntityMappingResponse, ErpSyncJobResponse, SyncScheduleConfigRequest, SyncScheduleConfigResponse, ErpDashboardResponse, ConnectorInfo, ErpEntitySchema, MappingTemplateDefinition, ApplyTemplateRequest, SandboxSyncRequest, SandboxSyncResult } from '../../models/admin/erp.models';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class ErpAdminService {
7
7
  private http;
@@ -36,6 +36,31 @@ export declare class ErpAdminService {
36
36
  getDashboard(): Observable<ErpDashboardResponse>;
37
37
  getSupportedErpTypes(): Observable<any[]>;
38
38
  getSyncableEntities(): Observable<any[]>;
39
+ getAvailableConnectors(): Observable<ConnectorInfo[]>;
40
+ discoverSchema(connectionId: number): Observable<ErpEntitySchema[]>;
41
+ discoverEntitySchema(connectionId: number, entityName: string): Observable<ErpEntitySchema>;
42
+ getTemplates(): Observable<MappingTemplateDefinition[]>;
43
+ getTemplate(templateId: string): Observable<MappingTemplateDefinition>;
44
+ applyTemplate(connectionId: number, request: ApplyTemplateRequest): Observable<any>;
45
+ runSandboxSync(connectionId: number, request?: SandboxSyncRequest): Observable<SandboxSyncResult>;
46
+ listFieldMappings(mappingId: number): Observable<any[]>;
47
+ addFieldMapping(mappingId: number, fieldMapping: {
48
+ erpField: string;
49
+ tgmField: string;
50
+ syncDirection: string;
51
+ isKeyField: boolean;
52
+ transformation?: any;
53
+ defaultValue?: string;
54
+ }): Observable<any>;
55
+ updateFieldMapping(mappingId: number, fieldId: number, updates: Partial<{
56
+ erpField: string;
57
+ tgmField: string;
58
+ syncDirection: string;
59
+ isKeyField: boolean;
60
+ transformation: any;
61
+ defaultValue: string;
62
+ }>): Observable<any>;
63
+ deleteFieldMapping(mappingId: number, fieldId: number): Observable<any>;
39
64
  static ɵfac: i0.ɵɵFactoryDeclaration<ErpAdminService, never>;
40
65
  static ɵprov: i0.ɵɵInjectableDeclaration<ErpAdminService>;
41
66
  }
@@ -0,0 +1,88 @@
1
+ import { Observable } from 'rxjs';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Menu item structure matching tgm-manager-ui's CoreMenuItem interface.
5
+ * Frontend devs can inject these into the sidebar dynamically.
6
+ *
7
+ * Usage in tgm-manager-ui:
8
+ *
9
+ * ```typescript
10
+ * // In AppComponent or a module initializer:
11
+ * cmsMenuHelper.getMenuItems('administration/cms').subscribe(items => {
12
+ * // items is a CoreMenuItem[] array ready to inject into the sidebar
13
+ * const adminSection = menu.find(m => m.id === 'administration');
14
+ * const cmsGroup = {
15
+ * id: 'custom-objects',
16
+ * type: 'section' as const,
17
+ * title: 'Custom Objects',
18
+ * icon: 'layers',
19
+ * role: [Role['Administration.Read']],
20
+ * children: items
21
+ * };
22
+ * const moreIdx = adminSection.children.findIndex(c => c.id === 'more');
23
+ * adminSection.children.splice(moreIdx, 0, cmsGroup);
24
+ * });
25
+ * ```
26
+ *
27
+ * Route setup in administraton.module.ts:
28
+ * ```typescript
29
+ * {
30
+ * path: 'cms/:collectionName',
31
+ * loadChildren: () => import('./cms/cms.module').then(m => m.CmsModule),
32
+ * canActivate: [AuthGuard]
33
+ * }
34
+ * ```
35
+ */
36
+ export declare class CmsMenuHelper {
37
+ private contentTypeService;
38
+ /**
39
+ * Fetch all active content types and transform them into menu items.
40
+ *
41
+ * @param baseUrl - The base route path (e.g., 'administration/cms')
42
+ * @param defaultIcon - Default icon for items without a specific one (default: 'database')
43
+ * @returns Observable of menu items array
44
+ */
45
+ getMenuItems(baseUrl?: string, defaultIcon?: string): Observable<CmsMenuItem[]>;
46
+ /**
47
+ * Transform a single content type into a menu item.
48
+ */
49
+ private toMenuItem;
50
+ /**
51
+ * Build a complete "Custom Objects" collapsible menu section.
52
+ * Ready to inject directly into the sidebar menu array.
53
+ *
54
+ * @param baseUrl - Route base path
55
+ * @param roles - Required roles to see this section
56
+ */
57
+ getMenuSection(baseUrl?: string, roles?: string[]): Observable<CmsMenuSection>;
58
+ static ɵfac: i0.ɵɵFactoryDeclaration<CmsMenuHelper, never>;
59
+ static ɵprov: i0.ɵɵInjectableDeclaration<CmsMenuHelper>;
60
+ }
61
+ /**
62
+ * Menu item structure compatible with tgm-manager-ui's CoreMenuItem.
63
+ */
64
+ export interface CmsMenuItem {
65
+ id: string;
66
+ title: string;
67
+ type: 'item' | 'section' | 'collapsible';
68
+ icon?: string;
69
+ url?: string;
70
+ role?: string[];
71
+ translate?: string;
72
+ hidden?: boolean;
73
+ disabled?: boolean;
74
+ availableOnMobileNative?: boolean;
75
+ mobileOnly?: boolean;
76
+ badge?: {
77
+ title?: string;
78
+ translate?: string;
79
+ classes?: string;
80
+ };
81
+ children?: CmsMenuItem[];
82
+ }
83
+ /**
84
+ * Complete menu section ready for sidebar injection.
85
+ */
86
+ export interface CmsMenuSection extends CmsMenuItem {
87
+ children: CmsMenuItem[];
88
+ }
@@ -0,0 +1,83 @@
1
+ import { Observable } from 'rxjs';
2
+ import { TgmHttpClient } from '../../core/http-client.service';
3
+ import { ContentTypeSchema, CmsSavedView, CmsValidationRule, CmsRecordType, CmsPageLayout, CmsDataResponse } from '../../models/api/cms.models';
4
+ import * as i0 from "@angular/core";
5
+ export declare class CmsContentTypeService {
6
+ private http;
7
+ private basePath;
8
+ constructor(http: TgmHttpClient);
9
+ getAll(): Observable<ContentTypeSchema[]>;
10
+ get(collectionName: string): Observable<ContentTypeSchema>;
11
+ getCount(): Observable<{
12
+ count: number;
13
+ }>;
14
+ create(schema: Partial<ContentTypeSchema> & {
15
+ collectionName: string;
16
+ attributes: Record<string, any>;
17
+ }): Observable<any>;
18
+ delete(collectionName: string): Observable<any>;
19
+ syncMigrations(): Observable<any>;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<CmsContentTypeService, never>;
21
+ static ɵprov: i0.ɵɵInjectableDeclaration<CmsContentTypeService>;
22
+ }
23
+ export declare class CmsDataService {
24
+ private http;
25
+ private basePath;
26
+ constructor(http: TgmHttpClient);
27
+ list(collectionName: string, params?: {
28
+ page?: number;
29
+ pageSize?: number;
30
+ sort?: string;
31
+ order?: string;
32
+ }): Observable<CmsDataResponse<any[]>>;
33
+ get(collectionName: string, id: number): Observable<CmsDataResponse>;
34
+ create(collectionName: string, data: Record<string, any>): Observable<CmsDataResponse>;
35
+ update(collectionName: string, id: number, data: Record<string, any>): Observable<CmsDataResponse>;
36
+ delete(collectionName: string, id: number): Observable<any>;
37
+ bulkDelete(collectionName: string, ids: number[]): Observable<any>;
38
+ count(collectionName: string): Observable<{
39
+ count: number;
40
+ }>;
41
+ search(collectionName: string, filters: Record<string, any>, params?: {
42
+ page?: number;
43
+ pageSize?: number;
44
+ sort?: string;
45
+ order?: string;
46
+ }): Observable<CmsDataResponse<any[]>>;
47
+ publish(collectionName: string, id: number): Observable<CmsDataResponse>;
48
+ unpublish(collectionName: string, id: number): Observable<CmsDataResponse>;
49
+ exportCsv(collectionName: string, columns?: string[]): Observable<string>;
50
+ listViews(collectionName: string): Observable<CmsDataResponse<CmsSavedView[]>>;
51
+ createView(collectionName: string, view: Partial<CmsSavedView>): Observable<CmsDataResponse<CmsSavedView>>;
52
+ updateView(collectionName: string, viewId: number, update: Partial<CmsSavedView>): Observable<CmsDataResponse<CmsSavedView>>;
53
+ deleteView(collectionName: string, viewId: number): Observable<any>;
54
+ listValidationRules(collectionName: string, activeOnly?: boolean): Observable<CmsDataResponse<CmsValidationRule[]>>;
55
+ createValidationRule(collectionName: string, rule: Partial<CmsValidationRule>): Observable<CmsDataResponse<CmsValidationRule>>;
56
+ updateValidationRule(collectionName: string, ruleId: number, update: Partial<CmsValidationRule>): Observable<CmsDataResponse<CmsValidationRule>>;
57
+ deleteValidationRule(collectionName: string, ruleId: number): Observable<any>;
58
+ listRecordTypes(collectionName: string, activeOnly?: boolean): Observable<CmsDataResponse<CmsRecordType[]>>;
59
+ createRecordType(collectionName: string, recordType: Partial<CmsRecordType>): Observable<CmsDataResponse<CmsRecordType>>;
60
+ updateRecordType(collectionName: string, typeId: number, update: Partial<CmsRecordType>): Observable<CmsDataResponse<CmsRecordType>>;
61
+ deleteRecordType(collectionName: string, typeId: number): Observable<any>;
62
+ listLayouts(collectionName: string): Observable<CmsDataResponse<CmsPageLayout[]>>;
63
+ createLayout(collectionName: string, layout: Partial<CmsPageLayout>): Observable<CmsDataResponse<CmsPageLayout>>;
64
+ updateLayout(collectionName: string, layoutId: number, update: Partial<CmsPageLayout>): Observable<CmsDataResponse<CmsPageLayout>>;
65
+ deleteLayout(collectionName: string, layoutId: number): Observable<any>;
66
+ listFormulas(collectionName: string, activeOnly?: boolean): Observable<CmsDataResponse<any[]>>;
67
+ createFormula(collectionName: string, formula: any): Observable<CmsDataResponse<any>>;
68
+ updateFormula(collectionName: string, formulaId: number, update: any): Observable<CmsDataResponse<any>>;
69
+ deleteFormula(collectionName: string, formulaId: number): Observable<any>;
70
+ listWorkflows(collectionName: string, activeOnly?: boolean): Observable<CmsDataResponse<any[]>>;
71
+ createWorkflow(collectionName: string, workflow: any): Observable<CmsDataResponse<any>>;
72
+ updateWorkflow(collectionName: string, workflowId: number, update: any): Observable<CmsDataResponse<any>>;
73
+ deleteWorkflow(collectionName: string, workflowId: number): Observable<any>;
74
+ listApprovalProcesses(collectionName: string): Observable<CmsDataResponse<any[]>>;
75
+ createApprovalProcess(collectionName: string, process: any): Observable<CmsDataResponse<any>>;
76
+ deleteApprovalProcess(collectionName: string, processId: number): Observable<any>;
77
+ getApprovalStatus(collectionName: string, recordId: number): Observable<CmsDataResponse<any[]>>;
78
+ submitForApproval(collectionName: string, recordId: number, processId: number): Observable<CmsDataResponse<any>>;
79
+ approvalAction(collectionName: string, instanceId: number, action: 'APPROVE' | 'REJECT', comment?: string): Observable<CmsDataResponse<any>>;
80
+ rollup(collectionName: string, targetCollection: string, fkField: string, parentId: number, fn?: string, aggregateField?: string): Observable<any>;
81
+ static ɵfac: i0.ɵɵFactoryDeclaration<CmsDataService, never>;
82
+ static ɵprov: i0.ɵɵInjectableDeclaration<CmsDataService>;
83
+ }
@@ -99,3 +99,5 @@ export { ScheduledReportService } from './scheduled-report.service';
99
99
  export { EntityCommentService } from './entity-comment.service';
100
100
  export { AuditEntryService } from './audit-entry.service';
101
101
  export { ThresholdAlertRuleService } from './threshold-alert-rule.service';
102
+ export { CmsContentTypeService, CmsDataService } from './cms.service';
103
+ export { CmsMenuHelper, CmsMenuItem, CmsMenuSection } from './cms-menu.helper';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@en-solutions/tgm-client-sdk",
3
- "version": "1.6.21",
3
+ "version": "1.8.0",
4
4
  "description": "TGM Manager Client SDK for Angular 18 - Type-safe services for all TGM API endpoints",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "repository": {
@@ -8,8 +8,7 @@
8
8
  "url": "https://github.com/EN-Solutions/tgm-client-sdk.git"
9
9
  },
10
10
  "publishConfig": {
11
- "registry": "https://registry.npmjs.org",
12
- "access": "public"
11
+ "registry": "https://npm.pkg.github.com"
13
12
  },
14
13
  "peerDependencies": {
15
14
  "@angular/common": "^18.0.0",