@contrail/flexplm 1.3.0-alpha.6 → 1.3.0-alpha.8c0ba92

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 +131 -0
  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
@@ -0,0 +1,131 @@
1
+ name: Publish to NPM
2
+
3
+ on:
4
+ push:
5
+ branches: [master]
6
+ paths-ignore:
7
+ - '.github/**'
8
+ pull_request:
9
+ branches: [master]
10
+ paths-ignore:
11
+ - '.github/**'
12
+
13
+ jobs:
14
+ check-version:
15
+ name: Verify version is available on npm
16
+ if: github.event_name == 'pull_request'
17
+ runs-on: ubuntu-latest
18
+ steps:
19
+ - uses: actions/checkout@v4
20
+
21
+ - name: Check version not already published
22
+ run: |
23
+ PACKAGE_NAME=$(node -p "require('./package.json').name")
24
+ VERSION=$(node -p "require('./package.json').version")
25
+ echo "Checking if ${PACKAGE_NAME}@${VERSION} exists on npm..."
26
+ if npm view "${PACKAGE_NAME}@${VERSION}" version 2>/dev/null; then
27
+ echo "::error::Version ${VERSION} is already published on npm. Bump the version in package.json before merging."
28
+ exit 1
29
+ else
30
+ echo "Version ${VERSION} is available."
31
+ fi
32
+
33
+ publish-alpha:
34
+ name: Publish alpha
35
+ if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository
36
+ runs-on: ubuntu-latest
37
+ permissions:
38
+ id-token: write
39
+ contents: read
40
+ outputs:
41
+ version: ${{ steps.publish.outputs.version }}
42
+ steps:
43
+ - uses: actions/checkout@v4
44
+
45
+ - uses: actions/setup-node@v4
46
+ with:
47
+ node-version: '24'
48
+ registry-url: 'https://registry.npmjs.org'
49
+
50
+ - name: Install and build
51
+ run: npm ci && npm run build
52
+
53
+ - name: Verify no private dependencies
54
+ run: |
55
+ node -e "
56
+ const deps = require('./package.json').dependencies || {};
57
+ const { execSync } = require('child_process');
58
+ let failed = false;
59
+ for (const pkg of Object.keys(deps)) {
60
+ try {
61
+ execSync('npm view ' + pkg, { stdio: 'pipe' });
62
+ } catch {
63
+ console.error('::error::Dependency ' + pkg + ' is not publicly accessible on npm');
64
+ failed = true;
65
+ }
66
+ }
67
+ if (failed) process.exit(1);
68
+ console.log('All ' + Object.keys(deps).length + ' dependencies are public.');
69
+ "
70
+
71
+ - name: Publish alpha
72
+ id: publish
73
+ run: |
74
+ SHORT_SHA=$(echo ${{ github.event.pull_request.head.sha }} | cut -c1-7)
75
+ VERSION=$(node -p "require('./package.json').version")-alpha.${SHORT_SHA}
76
+ npm version $VERSION --no-git-tag-version
77
+ OUTPUT=$(npm publish --tag alpha 2>&1) && {
78
+ echo "version=$VERSION" >> $GITHUB_OUTPUT
79
+ } || {
80
+ if echo "$OUTPUT" | grep -q "You cannot publish over the previously published versions"; then
81
+ echo "::warning::Alpha ${VERSION} already published, skipping."
82
+ else
83
+ echo "::error::Failed to publish alpha ${VERSION}"
84
+ echo "$OUTPUT"
85
+ exit 1
86
+ fi
87
+ }
88
+
89
+ publish-release:
90
+ name: Publish release
91
+ if: github.event_name == 'push'
92
+ runs-on: ubuntu-latest
93
+ permissions:
94
+ id-token: write
95
+ contents: read
96
+ outputs:
97
+ version: ${{ steps.publish.outputs.version }}
98
+ steps:
99
+ - uses: actions/checkout@v4
100
+
101
+ - uses: actions/setup-node@v4
102
+ with:
103
+ node-version: '24'
104
+ registry-url: 'https://registry.npmjs.org'
105
+
106
+ - name: Install and build
107
+ run: npm ci && npm run build
108
+
109
+ - name: Verify no private dependencies
110
+ run: |
111
+ node -e "
112
+ const deps = require('./package.json').dependencies || {};
113
+ const { execSync } = require('child_process');
114
+ let failed = false;
115
+ for (const pkg of Object.keys(deps)) {
116
+ try {
117
+ execSync('npm view ' + pkg, { stdio: 'pipe' });
118
+ } catch {
119
+ console.error('::error::Dependency ' + pkg + ' is not publicly accessible on npm');
120
+ failed = true;
121
+ }
122
+ }
123
+ if (failed) process.exit(1);
124
+ console.log('All ' + Object.keys(deps).length + ' dependencies are public.');
125
+ "
126
+
127
+ - name: Publish release
128
+ id: publish
129
+ run: |
130
+ npm publish
131
+ echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
@@ -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
+ }