@contrail/flexplm 1.3.0 → 1.3.1

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 (84) hide show
  1. package/.github/workflows/flexplm-lib.yml +1 -1
  2. package/.github/workflows/publish-to-npm.yml +35 -38
  3. package/lib/entity-processor/base-entity-processor.d.ts +42 -42
  4. package/lib/entity-processor/base-entity-processor.js +385 -385
  5. package/lib/entity-processor/base-entity-processor.spec.d.ts +1 -1
  6. package/lib/entity-processor/base-entity-processor.spec.js +397 -397
  7. package/lib/flexplm-request.d.ts +3 -3
  8. package/lib/flexplm-request.js +34 -34
  9. package/lib/flexplm-utils.d.ts +5 -5
  10. package/lib/flexplm-utils.js +33 -33
  11. package/lib/flexplm-utils.spec.d.ts +1 -1
  12. package/lib/flexplm-utils.spec.js +26 -26
  13. package/lib/index.d.ts +22 -22
  14. package/lib/index.js +38 -38
  15. package/lib/interfaces/interfaces.d.ts +105 -105
  16. package/lib/interfaces/interfaces.js +2 -2
  17. package/lib/interfaces/item-family-changes.d.ts +20 -20
  18. package/lib/interfaces/item-family-changes.js +56 -56
  19. package/lib/interfaces/publish-change-data.d.ts +19 -19
  20. package/lib/interfaces/publish-change-data.js +32 -32
  21. package/lib/publish/base-process-publish-assortment-callback.d.ts +9 -9
  22. package/lib/publish/base-process-publish-assortment-callback.js +38 -38
  23. package/lib/publish/base-process-publish-assortment.d.ts +93 -93
  24. package/lib/publish/base-process-publish-assortment.js +944 -944
  25. package/lib/publish/base-process-publish-assortment.spec.d.ts +1 -1
  26. package/lib/publish/base-process-publish-assortment.spec.js +1670 -1670
  27. package/lib/publish/mockData.d.ts +1389 -1389
  28. package/lib/publish/mockData.js +4519 -4519
  29. package/lib/transform/identifier-conversion-spec-mockData.js +444 -444
  30. package/lib/transform/identifier-conversion.d.ts +15 -15
  31. package/lib/transform/identifier-conversion.js +212 -212
  32. package/lib/transform/identifier-conversion.spec.d.ts +1 -1
  33. package/lib/transform/identifier-conversion.spec.js +339 -339
  34. package/lib/util/config-defaults.d.ts +8 -8
  35. package/lib/util/config-defaults.js +85 -85
  36. package/lib/util/config-defaults.spec.d.ts +1 -1
  37. package/lib/util/config-defaults.spec.js +293 -293
  38. package/lib/util/data-converter-spec-mockData.js +205 -205
  39. package/lib/util/data-converter.d.ts +39 -39
  40. package/lib/util/data-converter.js +592 -592
  41. package/lib/util/data-converter.spec.d.ts +1 -1
  42. package/lib/util/data-converter.spec.js +904 -904
  43. package/lib/util/error-response-object.d.ts +4 -4
  44. package/lib/util/error-response-object.js +47 -47
  45. package/lib/util/error-response-object.spec.d.ts +1 -1
  46. package/lib/util/error-response-object.spec.js +99 -99
  47. package/lib/util/event-short-message-status.d.ts +19 -19
  48. package/lib/util/event-short-message-status.js +23 -23
  49. package/lib/util/federation.d.ts +15 -15
  50. package/lib/util/federation.js +149 -149
  51. package/lib/util/flexplm-connect.d.ts +22 -22
  52. package/lib/util/flexplm-connect.js +176 -176
  53. package/lib/util/flexplm-connect.spec.d.ts +1 -1
  54. package/lib/util/flexplm-connect.spec.js +88 -88
  55. package/lib/util/logger-config.d.ts +1 -1
  56. package/lib/util/logger-config.js +26 -26
  57. package/lib/util/map-util-spec-mockData.js +205 -205
  58. package/lib/util/map-utils.d.ts +6 -6
  59. package/lib/util/map-utils.js +15 -15
  60. package/lib/util/map-utils.spec.d.ts +1 -1
  61. package/lib/util/map-utils.spec.js +89 -89
  62. package/lib/util/mockData.d.ts +80 -80
  63. package/lib/util/mockData.js +103 -103
  64. package/lib/util/thumbnail-util.d.ts +34 -34
  65. package/lib/util/thumbnail-util.js +215 -215
  66. package/lib/util/thumbnail-util.spec.d.ts +1 -1
  67. package/lib/util/thumbnail-util.spec.js +434 -434
  68. package/lib/util/type-conversion-utils-spec-mockData.js +259 -259
  69. package/lib/util/type-conversion-utils.d.ts +23 -23
  70. package/lib/util/type-conversion-utils.js +265 -265
  71. package/lib/util/type-conversion-utils.spec.d.ts +1 -1
  72. package/lib/util/type-conversion-utils.spec.js +868 -868
  73. package/lib/util/type-defaults.d.ts +16 -16
  74. package/lib/util/type-defaults.js +221 -221
  75. package/lib/util/type-defaults.spec.d.ts +1 -1
  76. package/lib/util/type-defaults.spec.js +516 -516
  77. package/lib/util/type-utils.d.ts +13 -13
  78. package/lib/util/type-utils.js +114 -114
  79. package/lib/util/type-utils.spec.d.ts +1 -1
  80. package/lib/util/type-utils.spec.js +190 -190
  81. package/package.json +1 -1
  82. package/publish.sh +0 -0
  83. package/tsconfig.json +1 -6
  84. package/.claude/settings.local.json +0 -8
@@ -7,7 +7,7 @@ jobs:
7
7
  runs-on: ubuntu-24.04
8
8
  strategy:
9
9
  matrix:
10
- node-version: [22.14.0]
10
+ node-version: [22.14.0, 24]
11
11
  steps:
12
12
  - name: Node.js
13
13
  uses: actions/setup-node@v3
@@ -30,10 +30,38 @@ jobs:
30
30
  echo "Version ${VERSION} is available."
31
31
  fi
32
32
 
33
+ check-dependencies:
34
+ name: Verify no private dependencies
35
+ runs-on: ubuntu-latest
36
+ steps:
37
+ - uses: actions/checkout@v4
38
+
39
+ - name: Verify no private dependencies
40
+ run: |
41
+ node -e "
42
+ const deps = require('./package.json').dependencies || {};
43
+ const { execSync } = require('child_process');
44
+ let failed = false;
45
+ for (const pkg of Object.keys(deps)) {
46
+ try {
47
+ execSync('npm view ' + pkg, { stdio: 'pipe' });
48
+ } catch {
49
+ console.error('::error::Dependency ' + pkg + ' is not publicly accessible on npm');
50
+ failed = true;
51
+ }
52
+ }
53
+ if (failed) process.exit(1);
54
+ console.log('All ' + Object.keys(deps).length + ' dependencies are public.');
55
+ "
56
+
33
57
  publish-alpha:
34
58
  name: Publish alpha
35
- if: github.event_name == 'pull_request'
59
+ needs: check-dependencies
60
+ if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository
36
61
  runs-on: ubuntu-latest
62
+ permissions:
63
+ id-token: write
64
+ contents: read
37
65
  outputs:
38
66
  version: ${{ steps.publish.outputs.version }}
39
67
  steps:
@@ -41,13 +69,10 @@ jobs:
41
69
 
42
70
  - uses: actions/setup-node@v4
43
71
  with:
44
- node-version: '20'
72
+ node-version: '24'
45
73
  registry-url: 'https://registry.npmjs.org'
46
74
 
47
75
  - name: Install and build
48
- env:
49
- NPM_TOKEN: ${{ secrets.ZACH_NPM_TOKEN_4 }}
50
- NODE_AUTH_TOKEN: ${{ secrets.ZACH_NPM_TOKEN_4 }}
51
76
  run: npm ci && npm run build
52
77
 
53
78
  - name: Publish alpha
@@ -67,14 +92,15 @@ jobs:
67
92
  exit 1
68
93
  fi
69
94
  }
70
- env:
71
- NPM_TOKEN: ${{ secrets.ZACH_NPM_TOKEN_4 }}
72
- NODE_AUTH_TOKEN: ${{ secrets.ZACH_NPM_TOKEN_4 }}
73
95
 
74
96
  publish-release:
75
97
  name: Publish release
98
+ needs: check-dependencies
76
99
  if: github.event_name == 'push'
77
100
  runs-on: ubuntu-latest
101
+ permissions:
102
+ id-token: write
103
+ contents: read
78
104
  outputs:
79
105
  version: ${{ steps.publish.outputs.version }}
80
106
  steps:
@@ -82,13 +108,10 @@ jobs:
82
108
 
83
109
  - uses: actions/setup-node@v4
84
110
  with:
85
- node-version: '20'
111
+ node-version: '24'
86
112
  registry-url: 'https://registry.npmjs.org'
87
113
 
88
114
  - name: Install and build
89
- env:
90
- NPM_TOKEN: ${{ secrets.ZACH_NPM_TOKEN_4 }}
91
- NODE_AUTH_TOKEN: ${{ secrets.ZACH_NPM_TOKEN_4 }}
92
115
  run: npm ci && npm run build
93
116
 
94
117
  - name: Publish release
@@ -96,29 +119,3 @@ jobs:
96
119
  run: |
97
120
  npm publish
98
121
  echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
99
- env:
100
- NPM_TOKEN: ${{ secrets.ZACH_NPM_TOKEN_4 }}
101
- NODE_AUTH_TOKEN: ${{ secrets.ZACH_NPM_TOKEN_4 }}
102
-
103
- verify-install:
104
- name: Verify public install
105
- needs: [publish-alpha, publish-release]
106
- if: always() && (needs.publish-alpha.outputs.version || needs.publish-release.outputs.version)
107
- runs-on: ubuntu-latest
108
- steps:
109
- - name: Install without auth
110
- run: |
111
- VERSION="${{ needs.publish-alpha.outputs.version || needs.publish-release.outputs.version }}"
112
- echo "Verifying @contrail/flexplm@${VERSION} can be installed without auth..."
113
- mkdir /tmp/install-test && cd /tmp/install-test
114
- npm init -y > /dev/null
115
- for attempt in 1 2 3; do
116
- if npm install @contrail/flexplm@${VERSION} --no-save 2>/dev/null; then
117
- echo "Install verified successfully."
118
- exit 0
119
- fi
120
- echo "Attempt ${attempt} failed, waiting 10s for registry propagation..."
121
- sleep 10
122
- done
123
- echo "::error::Failed to install @contrail/flexplm@${VERSION} after 3 attempts"
124
- exit 1
@@ -1,42 +1,42 @@
1
- import { FCConfig, EntityPayloadType } from '../interfaces/interfaces';
2
- import { DataConverter } from '../util/data-converter';
3
- import { TypeUtils } from '../util/type-utils';
4
- import { MapFileUtil } from '@contrail/transform-data';
5
- export declare class IncomingEntityResponse {
6
- entity: any;
7
- earlyReturn: any;
8
- }
9
- export declare abstract class BaseEntityProcessor {
10
- protected config: FCConfig;
11
- protected dc: DataConverter;
12
- protected mapFileUtil: MapFileUtil;
13
- protected baseType: string;
14
- protected typeUtil: TypeUtils;
15
- protected transformMapFile: string;
16
- protected entities: any;
17
- protected orgSlug: string;
18
- constructor(config: FCConfig, dc: DataConverter, mapFileUtil: MapFileUtil, baseType: string);
19
- inbound(event: EntityPayloadType): Promise<any>;
20
- handleIncomingUpsert(event: EntityPayloadType): Promise<any>;
21
- getInboundStatusMessage(statusObject: any): string;
22
- queryEntityWithSubTypeCriteria(entityType: string, entityTypePath: string, propertyCriteria: any): Promise<any[]>;
23
- getCriteriaForEntity(entityType: string, entityTypePath: string, propertyCriteria: any): Promise<any>;
24
- getRootTypePropertyKeys(rootType: any, propertyCriteria?: any): string[];
25
- handleIncomingDelete(event: any): Promise<void>;
26
- getTransformedData(event: any): Promise<any>;
27
- getUpdatesForEntity(entity: any, inboundData: any): Promise<object>;
28
- getVibeOwningKeys(entity: any): Promise<any[]>;
29
- getVibeOwningKeysFromInbound(entity: any): Promise<any[]>;
30
- createEntity(entityName: any, changes: any): Promise<any>;
31
- updateEntity(entityName: any, entity: any, diffs: any): Promise<any>;
32
- protected abstract getIncomingEntity(event: any, inboundData: any): Promise<IncomingEntityResponse>;
33
- protected abstract getCreateEntity(inboundData: any): Promise<IncomingEntityResponse>;
34
- outbound(event: any): Promise<any>;
35
- handleOutgoingUpsert(entityType: any, event: any): Promise<any>;
36
- getOutboundEntityUpdates(event: any, flexResponse: any): Promise<any>;
37
- handleOutgoingDelete(entityType: any, event: any): Promise<void>;
38
- protected abstract getOutgoingUpsertPayload(entityType: any, event: any): Promise<EntityPayloadType>;
39
- protected triggerNewEvent(triggerKey: string, event: any): Promise<any>;
40
- protected sendUpsertToFlexPLM(event: any): Promise<any>;
41
- protected getEntityCurrentStateUpsertPayload(event: any): Promise<EntityPayloadType>;
42
- }
1
+ import { FCConfig, EntityPayloadType } from '../interfaces/interfaces';
2
+ import { DataConverter } from '../util/data-converter';
3
+ import { TypeUtils } from '../util/type-utils';
4
+ import { MapFileUtil } from '@contrail/transform-data';
5
+ export declare class IncomingEntityResponse {
6
+ entity: any;
7
+ earlyReturn: any;
8
+ }
9
+ export declare abstract class BaseEntityProcessor {
10
+ protected config: FCConfig;
11
+ protected dc: DataConverter;
12
+ protected mapFileUtil: MapFileUtil;
13
+ protected baseType: string;
14
+ protected typeUtil: TypeUtils;
15
+ protected transformMapFile: string;
16
+ protected entities: any;
17
+ protected orgSlug: string;
18
+ constructor(config: FCConfig, dc: DataConverter, mapFileUtil: MapFileUtil, baseType: string);
19
+ inbound(event: EntityPayloadType): Promise<any>;
20
+ handleIncomingUpsert(event: EntityPayloadType): Promise<any>;
21
+ getInboundStatusMessage(statusObject: any): string;
22
+ queryEntityWithSubTypeCriteria(entityType: string, entityTypePath: string, propertyCriteria: any): Promise<any[]>;
23
+ getCriteriaForEntity(entityType: string, entityTypePath: string, propertyCriteria: any): Promise<any>;
24
+ getRootTypePropertyKeys(rootType: any, propertyCriteria?: any): string[];
25
+ handleIncomingDelete(event: any): Promise<void>;
26
+ getTransformedData(event: any): Promise<any>;
27
+ getUpdatesForEntity(entity: any, inboundData: any): Promise<object>;
28
+ getVibeOwningKeys(entity: any): Promise<any[]>;
29
+ getVibeOwningKeysFromInbound(entity: any): Promise<any[]>;
30
+ createEntity(entityName: any, changes: any): Promise<any>;
31
+ updateEntity(entityName: any, entity: any, diffs: any): Promise<any>;
32
+ protected abstract getIncomingEntity(event: any, inboundData: any): Promise<IncomingEntityResponse>;
33
+ protected abstract getCreateEntity(inboundData: any): Promise<IncomingEntityResponse>;
34
+ outbound(event: any): Promise<any>;
35
+ handleOutgoingUpsert(entityType: any, event: any): Promise<any>;
36
+ getOutboundEntityUpdates(event: any, flexResponse: any): Promise<any>;
37
+ handleOutgoingDelete(entityType: any, event: any): Promise<void>;
38
+ protected abstract getOutgoingUpsertPayload(entityType: any, event: any): Promise<EntityPayloadType>;
39
+ protected triggerNewEvent(triggerKey: string, event: any): Promise<any>;
40
+ protected sendUpsertToFlexPLM(event: any): Promise<any>;
41
+ protected getEntityCurrentStateUpsertPayload(event: any): Promise<EntityPayloadType>;
42
+ }