diff --git a/precomputer/generated/purple_client/docs/PatchedRfcToBeRequest.md b/precomputer/generated/purple_client/docs/PatchedRfcToBeRequest.md index ca49256..d9df67b 100644 --- a/precomputer/generated/purple_client/docs/PatchedRfcToBeRequest.md +++ b/precomputer/generated/purple_client/docs/PatchedRfcToBeRequest.md @@ -23,10 +23,13 @@ Name | Type `stream` | string `publicationStream` | string `authors` | [Array<RfcAuthorRequest>](RfcAuthorRequest.md) +`shepherdId` | number +`iesgContactId` | number `rfcNumber` | number `consensus` | boolean `ianaStatusSlug` | [IanaStatusSlugEnum](IanaStatusSlugEnum.md) `repository` | string +`streamManagerId` | number ## Example @@ -51,10 +54,13 @@ const example = { "stream": null, "publicationStream": null, "authors": null, + "shepherdId": null, + "iesgContactId": null, "rfcNumber": null, "consensus": null, "ianaStatusSlug": null, "repository": null, + "streamManagerId": null, } satisfies PatchedRfcToBeRequest console.log(example) diff --git a/precomputer/generated/purple_client/docs/PublicQueueItem.md b/precomputer/generated/purple_client/docs/PublicQueueItem.md index b028831..4f1540c 100644 --- a/precomputer/generated/purple_client/docs/PublicQueueItem.md +++ b/precomputer/generated/purple_client/docs/PublicQueueItem.md @@ -27,6 +27,10 @@ Name | Type `authors` | [Array<PublicQueueAuthor>](PublicQueueAuthor.md) `approvalLogMessage` | [Array<ApprovalLogMessage>](ApprovalLogMessage.md) `stream` | string +`group` | string +`groupName` | string +`stdLevel` | string +`references` | [Array<RpcRelatedDocument>](RpcRelatedDocument.md) ## Example @@ -55,6 +59,10 @@ const example = { "authors": null, "approvalLogMessage": null, "stream": null, + "group": null, + "groupName": null, + "stdLevel": null, + "references": null, } satisfies PublicQueueItem console.log(example) diff --git a/precomputer/generated/purple_client/docs/RfcToBe.md b/precomputer/generated/purple_client/docs/RfcToBe.md index b7f3b6b..1c15f76 100644 --- a/precomputer/generated/purple_client/docs/RfcToBe.md +++ b/precomputer/generated/purple_client/docs/RfcToBe.md @@ -40,6 +40,7 @@ Name | Type `additionalEmails` | [Array<AdditionalEmail>](AdditionalEmail.md) `repository` | string `blockingReasons` | [Array<RfcToBeBlockingReason>](RfcToBeBlockingReason.md) +`streamManager` | [BaseDatatrackerPerson](BaseDatatrackerPerson.md) ## Example @@ -81,6 +82,7 @@ const example = { "additionalEmails": null, "repository": null, "blockingReasons": null, + "streamManager": null, } satisfies RfcToBe console.log(example) diff --git a/precomputer/generated/purple_client/docs/RfcToBeRequest.md b/precomputer/generated/purple_client/docs/RfcToBeRequest.md index 2af7421..98b859d 100644 --- a/precomputer/generated/purple_client/docs/RfcToBeRequest.md +++ b/precomputer/generated/purple_client/docs/RfcToBeRequest.md @@ -23,10 +23,13 @@ Name | Type `stream` | string `publicationStream` | string `authors` | [Array<RfcAuthorRequest>](RfcAuthorRequest.md) +`shepherdId` | number +`iesgContactId` | number `rfcNumber` | number `consensus` | boolean `ianaStatusSlug` | [IanaStatusSlugEnum](IanaStatusSlugEnum.md) `repository` | string +`streamManagerId` | number ## Example @@ -51,10 +54,13 @@ const example = { "stream": null, "publicationStream": null, "authors": null, + "shepherdId": null, + "iesgContactId": null, "rfcNumber": null, "consensus": null, "ianaStatusSlug": null, "repository": null, + "streamManagerId": null, } satisfies RfcToBeRequest console.log(example) diff --git a/precomputer/generated/purple_client/models/PatchedRfcToBeRequest.ts b/precomputer/generated/purple_client/models/PatchedRfcToBeRequest.ts index 6a52c37..a700a03 100644 --- a/precomputer/generated/purple_client/models/PatchedRfcToBeRequest.ts +++ b/precomputer/generated/purple_client/models/PatchedRfcToBeRequest.ts @@ -130,6 +130,18 @@ export interface PatchedRfcToBeRequest { * @memberof PatchedRfcToBeRequest */ authors?: Array; + /** + * Set the document shepherd by providing their datatracker person ID. The DatatrackerPerson record will be created if it does not exist. + * @type {number} + * @memberof PatchedRfcToBeRequest + */ + shepherdId?: number | null; + /** + * Set the IESG contact by providing their datatracker person ID. The DatatrackerPerson record will be created if it does not exist. + * @type {number} + * @memberof PatchedRfcToBeRequest + */ + iesgContactId?: number | null; /** * * @type {number} @@ -160,6 +172,12 @@ export interface PatchedRfcToBeRequest { * @memberof PatchedRfcToBeRequest */ repository?: string; + /** + * Set the stream manager by providing their datatracker person ID. The DatatrackerPerson record will be created if it does not exist. + * @type {number} + * @memberof PatchedRfcToBeRequest + */ + streamManagerId?: number | null; } @@ -197,10 +215,13 @@ export function PatchedRfcToBeRequestFromJSONTyped(json: any, ignoreDiscriminato 'stream': json['stream'] == null ? undefined : json['stream'], 'publicationStream': json['publication_stream'] == null ? undefined : json['publication_stream'], 'authors': json['authors'] == null ? undefined : ((json['authors'] as Array).map(RfcAuthorRequestFromJSON)), + 'shepherdId': json['shepherd_id'] == null ? undefined : json['shepherd_id'], + 'iesgContactId': json['iesg_contact_id'] == null ? undefined : json['iesg_contact_id'], 'rfcNumber': json['rfc_number'] == null ? undefined : json['rfc_number'], 'consensus': json['consensus'] == null ? undefined : json['consensus'], 'ianaStatusSlug': json['iana_status_slug'] == null ? undefined : IanaStatusSlugEnumFromJSON(json['iana_status_slug']), 'repository': json['repository'] == null ? undefined : json['repository'], + 'streamManagerId': json['stream_manager_id'] == null ? undefined : json['stream_manager_id'], }; } @@ -231,10 +252,13 @@ export function PatchedRfcToBeRequestToJSONTyped(value?: PatchedRfcToBeRequest | 'stream': value['stream'], 'publication_stream': value['publicationStream'], 'authors': value['authors'] == null ? undefined : ((value['authors'] as Array).map(RfcAuthorRequestToJSON)), + 'shepherd_id': value['shepherdId'], + 'iesg_contact_id': value['iesgContactId'], 'rfc_number': value['rfcNumber'], 'consensus': value['consensus'], 'iana_status_slug': IanaStatusSlugEnumToJSON(value['ianaStatusSlug']), 'repository': value['repository'], + 'stream_manager_id': value['streamManagerId'], }; } diff --git a/precomputer/generated/purple_client/models/PublicQueueItem.ts b/precomputer/generated/purple_client/models/PublicQueueItem.ts index 5ba199b..00d765a 100644 --- a/precomputer/generated/purple_client/models/PublicQueueItem.ts +++ b/precomputer/generated/purple_client/models/PublicQueueItem.ts @@ -20,6 +20,13 @@ import { PublicAssignmentToJSON, PublicAssignmentToJSONTyped, } from './PublicAssignment.ts'; +import type { RpcRelatedDocument } from './RpcRelatedDocument.ts'; +import { + RpcRelatedDocumentFromJSON, + RpcRelatedDocumentFromJSONTyped, + RpcRelatedDocumentToJSON, + RpcRelatedDocumentToJSONTyped, +} from './RpcRelatedDocument.ts'; import type { ActionHolder } from './ActionHolder.ts'; import { ActionHolderFromJSON, @@ -204,12 +211,36 @@ export interface PublicQueueItem { * @memberof PublicQueueItem */ readonly approvalLogMessage?: Array; + /** + * Current stream + * @type {string} + * @memberof PublicQueueItem + */ + stream: string; + /** + * Acronym of datatracker group where this document originated, if any + * @type {string} + * @memberof PublicQueueItem + */ + group?: string; /** * * @type {string} * @memberof PublicQueueItem */ - readonly stream?: string; + readonly groupName?: string | null; + /** + * Current StdLevel + * @type {string} + * @memberof PublicQueueItem + */ + stdLevel: string; + /** + * + * @type {Array} + * @memberof PublicQueueItem + */ + readonly references?: Array; } /** @@ -221,6 +252,8 @@ export function instanceOfPublicQueueItem(value: object): value is PublicQueueIt if (!('disposition' in value) || value['disposition'] === undefined) return false; if (!('enqueuedAt' in value) || value['enqueuedAt'] === undefined) return false; if (!('authors' in value) || value['authors'] === undefined) return false; + if (!('stream' in value) || value['stream'] === undefined) return false; + if (!('stdLevel' in value) || value['stdLevel'] === undefined) return false; return true; } @@ -253,7 +286,11 @@ export function PublicQueueItemFromJSONTyped(json: any, ignoreDiscriminator: boo 'blockingReasons': json['blocking_reasons'] == null ? undefined : ((json['blocking_reasons'] as Array).map(RfcToBeBlockingReasonFromJSON)), 'authors': ((json['authors'] as Array).map(PublicQueueAuthorFromJSON)), 'approvalLogMessage': json['approval_log_message'] == null ? undefined : ((json['approval_log_message'] as Array).map(ApprovalLogMessageFromJSON)), - 'stream': json['stream'] == null ? undefined : json['stream'], + 'stream': json['stream'], + 'group': json['group'] == null ? undefined : json['group'], + 'groupName': json['group_name'] == null ? undefined : json['group_name'], + 'stdLevel': json['std_level'], + 'references': json['references'] == null ? undefined : ((json['references'] as Array).map(RpcRelatedDocumentFromJSON)), }; } @@ -261,7 +298,7 @@ export function PublicQueueItemToJSON(json: any): PublicQueueItem { return PublicQueueItemToJSONTyped(json, false); } -export function PublicQueueItemToJSONTyped(value?: Omit | null, ignoreDiscriminator: boolean = false): any { +export function PublicQueueItemToJSONTyped(value?: Omit | null, ignoreDiscriminator: boolean = false): any { if (value == null) { return value; } @@ -275,6 +312,9 @@ export function PublicQueueItemToJSONTyped(value?: Omit).map(PublicQueueAuthorToJSON)), + 'stream': value['stream'], + 'group': value['group'], + 'std_level': value['stdLevel'], }; } diff --git a/precomputer/generated/purple_client/models/RfcToBe.ts b/precomputer/generated/purple_client/models/RfcToBe.ts index 2c8b532..d342879 100644 --- a/precomputer/generated/purple_client/models/RfcToBe.ts +++ b/precomputer/generated/purple_client/models/RfcToBe.ts @@ -295,6 +295,12 @@ export interface RfcToBe { * @memberof RfcToBe */ readonly blockingReasons?: Array; + /** + * + * @type {BaseDatatrackerPerson} + * @memberof RfcToBe + */ + readonly streamManager?: BaseDatatrackerPerson; } /** @@ -355,6 +361,7 @@ export function RfcToBeFromJSONTyped(json: any, ignoreDiscriminator: boolean): R 'additionalEmails': json['additional_emails'] == null ? undefined : ((json['additional_emails'] as Array).map(AdditionalEmailFromJSON)), 'repository': json['repository'] == null ? undefined : json['repository'], 'blockingReasons': json['blocking_reasons'] == null ? undefined : ((json['blocking_reasons'] as Array).map(RfcToBeBlockingReasonFromJSON)), + 'streamManager': json['stream_manager'] == null ? undefined : BaseDatatrackerPersonFromJSON(json['stream_manager']), }; } @@ -362,7 +369,7 @@ export function RfcToBeToJSON(json: any): RfcToBe { return RfcToBeToJSONTyped(json, false); } -export function RfcToBeToJSONTyped(value?: Omit | null, ignoreDiscriminator: boolean = false): any { +export function RfcToBeToJSONTyped(value?: Omit | null, ignoreDiscriminator: boolean = false): any { if (value == null) { return value; } diff --git a/precomputer/generated/purple_client/models/RfcToBeRequest.ts b/precomputer/generated/purple_client/models/RfcToBeRequest.ts index e728696..80c63ab 100644 --- a/precomputer/generated/purple_client/models/RfcToBeRequest.ts +++ b/precomputer/generated/purple_client/models/RfcToBeRequest.ts @@ -130,6 +130,18 @@ export interface RfcToBeRequest { * @memberof RfcToBeRequest */ authors: Array; + /** + * Set the document shepherd by providing their datatracker person ID. The DatatrackerPerson record will be created if it does not exist. + * @type {number} + * @memberof RfcToBeRequest + */ + shepherdId?: number | null; + /** + * Set the IESG contact by providing their datatracker person ID. The DatatrackerPerson record will be created if it does not exist. + * @type {number} + * @memberof RfcToBeRequest + */ + iesgContactId?: number | null; /** * * @type {number} @@ -160,6 +172,12 @@ export interface RfcToBeRequest { * @memberof RfcToBeRequest */ repository?: string; + /** + * Set the stream manager by providing their datatracker person ID. The DatatrackerPerson record will be created if it does not exist. + * @type {number} + * @memberof RfcToBeRequest + */ + streamManagerId?: number | null; } @@ -205,10 +223,13 @@ export function RfcToBeRequestFromJSONTyped(json: any, ignoreDiscriminator: bool 'stream': json['stream'], 'publicationStream': json['publication_stream'] == null ? undefined : json['publication_stream'], 'authors': ((json['authors'] as Array).map(RfcAuthorRequestFromJSON)), + 'shepherdId': json['shepherd_id'] == null ? undefined : json['shepherd_id'], + 'iesgContactId': json['iesg_contact_id'] == null ? undefined : json['iesg_contact_id'], 'rfcNumber': json['rfc_number'] == null ? undefined : json['rfc_number'], 'consensus': json['consensus'] == null ? undefined : json['consensus'], 'ianaStatusSlug': json['iana_status_slug'] == null ? undefined : IanaStatusSlugEnumFromJSON(json['iana_status_slug']), 'repository': json['repository'] == null ? undefined : json['repository'], + 'streamManagerId': json['stream_manager_id'] == null ? undefined : json['stream_manager_id'], }; } @@ -239,10 +260,13 @@ export function RfcToBeRequestToJSONTyped(value?: RfcToBeRequest | null, ignoreD 'stream': value['stream'], 'publication_stream': value['publicationStream'], 'authors': ((value['authors'] as Array).map(RfcAuthorRequestToJSON)), + 'shepherd_id': value['shepherdId'], + 'iesg_contact_id': value['iesgContactId'], 'rfc_number': value['rfcNumber'], 'consensus': value['consensus'], 'iana_status_slug': IanaStatusSlugEnumToJSON(value['ianaStatusSlug']), 'repository': value['repository'], + 'stream_manager_id': value['streamManagerId'], }; } diff --git a/precomputer/package-lock.json b/precomputer/package-lock.json index f637fad..0ef306e 100644 --- a/precomputer/package-lock.json +++ b/precomputer/package-lock.json @@ -52,15 +52,6 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, - "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", - "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==", - "license": "ISC", - "engines": { - "node": "20 || >=22" - } - }, "node_modules/@asamuzakjp/dom-selector": { "version": "6.8.1", "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.8.1.tgz", @@ -74,15 +65,6 @@ "lru-cache": "^11.2.6" } }, - "node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", - "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==", - "license": "ISC", - "engines": { - "node": "20 || >=22" - } - }, "node_modules/@asamuzakjp/nwsapi": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", @@ -4667,15 +4649,6 @@ "node": ">=20" } }, - "node_modules/cssstyle/node_modules/lru-cache": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", - "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==", - "license": "ISC", - "engines": { - "node": "20 || >=22" - } - }, "node_modules/data-uri-to-buffer": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", @@ -5822,6 +5795,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lru-cache": { + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.3.tgz", + "integrity": "sha512-JvNw9Y81y33E+BEYPr0U7omo+U9AySnsMsEiXgwT6yqd31VQWTLNQqmT4ou5eqPFUrTfIDFta2wKhB1hyohtAQ==", + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, "node_modules/luxon": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz", @@ -6114,15 +6096,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", - "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==", - "license": "ISC", - "engines": { - "node": "20 || >=22" - } - }, "node_modules/path-to-regexp": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz", @@ -6262,12 +6235,12 @@ } }, "node_modules/proxy-agent/node_modules/lru-cache": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", - "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "license": "ISC", "engines": { - "node": "20 || >=22" + "node": ">=12" } }, "node_modules/proxy-from-env": { diff --git a/precomputer/package.json b/precomputer/package.json index 1f74a28..48b7809 100644 --- a/precomputer/package.json +++ b/precomputer/package.json @@ -39,9 +39,5 @@ "vite-plugin-top-level-await": "1.6.0", "vitest": "4.0.18", "vue-tsc": "3.2.5" - }, - "// overrides": "LRU cache has a top level await which breaks vitest. If you can make queue-xml.test.ts pass without this override feel free to delete this", - "overrides": { - "lru-cache": "11.0.0" } } diff --git a/precomputer/purple_api.yaml b/precomputer/purple_api.yaml index efc66ca..7762ae6 100644 --- a/precomputer/purple_api.yaml +++ b/precomputer/purple_api.yaml @@ -4171,10 +4171,8 @@ components: $ref: '#/components/schemas/MsgtypeEnum' to: type: string - maxLength: 1000 cc: type: string - maxLength: 1000 subject: type: string maxLength: 1000 @@ -4194,10 +4192,8 @@ components: to: type: string minLength: 1 - maxLength: 1000 cc: type: string - maxLength: 1000 subject: type: string minLength: 1 @@ -4651,6 +4647,18 @@ components: type: array items: $ref: '#/components/schemas/RfcAuthorRequest' + shepherd_id: + type: integer + writeOnly: true + nullable: true + description: Set the document shepherd by providing their datatracker person + ID. The DatatrackerPerson record will be created if it does not exist. + iesg_contact_id: + type: integer + writeOnly: true + nullable: true + description: Set the IESG contact by providing their datatracker person + ID. The DatatrackerPerson record will be created if it does not exist. rfc_number: type: integer maximum: 2147483647 @@ -4676,6 +4684,12 @@ components: type: string description: Repository name (e.g., ietf-tools/purple) maxLength: 1000 + stream_manager_id: + type: integer + writeOnly: true + nullable: true + description: Set the stream manager by providing their datatracker person + ID. The DatatrackerPerson record will be created if it does not exist. PatchedRpcRelatedDocumentRequest: type: object description: Serializer for related document for an RfcToBe @@ -4840,12 +4854,31 @@ components: readOnly: true stream: type: string + description: Current stream + group: + type: string + description: Acronym of datatracker group where this document originated, + if any + maxLength: 40 + group_name: + type: string + nullable: true + readOnly: true + std_level: + type: string + description: Current StdLevel + references: + type: array + items: + $ref: '#/components/schemas/RpcRelatedDocument' readOnly: true required: - authors - disposition - draft_url - enqueued_at + - std_level + - stream - title PublishRfcRequest: type: object @@ -5136,6 +5169,10 @@ components: items: $ref: '#/components/schemas/RfcToBeBlockingReason' readOnly: true + stream_manager: + allOf: + - $ref: '#/components/schemas/BaseDatatrackerPerson' + readOnly: true required: - authors - boilerplate @@ -5259,6 +5296,18 @@ components: type: array items: $ref: '#/components/schemas/RfcAuthorRequest' + shepherd_id: + type: integer + writeOnly: true + nullable: true + description: Set the document shepherd by providing their datatracker person + ID. The DatatrackerPerson record will be created if it does not exist. + iesg_contact_id: + type: integer + writeOnly: true + nullable: true + description: Set the IESG contact by providing their datatracker person + ID. The DatatrackerPerson record will be created if it does not exist. rfc_number: type: integer maximum: 2147483647 @@ -5284,6 +5333,12 @@ components: type: string description: Repository name (e.g., ietf-tools/purple) maxLength: 1000 + stream_manager_id: + type: integer + writeOnly: true + nullable: true + description: Set the stream manager by providing their datatracker person + ID. The DatatrackerPerson record will be created if it does not exist. required: - authors - boilerplate