@contrail/flexplm 1.3.0-alpha.6 → 1.3.0-alpha.7cd23d9

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 +118 -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,118 @@
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: Publish alpha
54
+ id: publish
55
+ run: |
56
+ SHORT_SHA=$(echo ${{ github.event.pull_request.head.sha }} | cut -c1-7)
57
+ VERSION=$(node -p "require('./package.json').version")-alpha.${SHORT_SHA}
58
+ npm version $VERSION --no-git-tag-version
59
+ OUTPUT=$(npm publish --tag alpha 2>&1) && {
60
+ echo "version=$VERSION" >> $GITHUB_OUTPUT
61
+ } || {
62
+ if echo "$OUTPUT" | grep -q "You cannot publish over the previously published versions"; then
63
+ echo "::warning::Alpha ${VERSION} already published, skipping."
64
+ else
65
+ echo "::error::Failed to publish alpha ${VERSION}"
66
+ echo "$OUTPUT"
67
+ exit 1
68
+ fi
69
+ }
70
+
71
+ publish-release:
72
+ name: Publish release
73
+ if: github.event_name == 'push'
74
+ runs-on: ubuntu-latest
75
+ permissions:
76
+ id-token: write
77
+ contents: read
78
+ outputs:
79
+ version: ${{ steps.publish.outputs.version }}
80
+ steps:
81
+ - uses: actions/checkout@v4
82
+
83
+ - uses: actions/setup-node@v4
84
+ with:
85
+ node-version: '24'
86
+ registry-url: 'https://registry.npmjs.org'
87
+
88
+ - name: Install and build
89
+ run: npm ci && npm run build
90
+
91
+ - name: Publish release
92
+ id: publish
93
+ run: |
94
+ npm publish --provenance --access public
95
+ echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
96
+
97
+ verify-install:
98
+ name: Verify public install
99
+ needs: [publish-alpha, publish-release]
100
+ if: always() && (needs.publish-alpha.outputs.version || needs.publish-release.outputs.version)
101
+ runs-on: ubuntu-latest
102
+ steps:
103
+ - name: Install without auth
104
+ run: |
105
+ VERSION="${{ needs.publish-alpha.outputs.version || needs.publish-release.outputs.version }}"
106
+ echo "Verifying @contrail/flexplm@${VERSION} can be installed without auth..."
107
+ mkdir /tmp/install-test && cd /tmp/install-test
108
+ npm init -y > /dev/null
109
+ for attempt in 1 2 3; do
110
+ if npm install @contrail/flexplm@${VERSION} --no-save 2>/dev/null; then
111
+ echo "Install verified successfully."
112
+ exit 0
113
+ fi
114
+ echo "Attempt ${attempt} failed, waiting 10s for registry propagation..."
115
+ sleep 10
116
+ done
117
+ echo "::error::Failed to install @contrail/flexplm@${VERSION} after 3 attempts"
118
+ 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
+ }