"use strict"; /* -------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. * ------------------------------------------------------------------------------------------ */ Object.defineProperty(exports, "__esModule", { value: true }); exports.DidCloseNotebookDocumentNotification = exports.DidSaveNotebookDocumentNotification = exports.DidChangeNotebookDocumentNotification = exports.NotebookCellArrayChange = exports.DidOpenNotebookDocumentNotification = exports.NotebookDocumentSyncRegistrationType = exports.NotebookDocument = exports.NotebookCell = exports.ExecutionSummary = exports.NotebookCellKind = void 0; const vscode_languageserver_types_1 = require("vscode-languageserver-types"); const Is = require("./utils/is"); const messages_1 = require("./messages"); /** * A notebook cell kind. * * @since 3.17.0 */ var NotebookCellKind; (function (NotebookCellKind) { /** * A markup-cell is formatted source that is used for display. */ NotebookCellKind.Markup = 1; /** * A code-cell is source code. */ NotebookCellKind.Code = 2; function is(value) { return value === 1 || value === 2; } NotebookCellKind.is = is; })(NotebookCellKind = exports.NotebookCellKind || (exports.NotebookCellKind = {})); var ExecutionSummary; (function (ExecutionSummary) { function create(executionOrder, success) { const result = { executionOrder }; if (success === true || success === false) { result.success = success; } return result; } ExecutionSummary.create = create; function is(value) { const candidate = value; return Is.objectLiteral(candidate) && vscode_languageserver_types_1.uinteger.is(candidate.executionOrder) && (candidate.success === undefined || Is.boolean(candidate.success)); } ExecutionSummary.is = is; function equals(one, other) { if (one === other) { return true; } if (one === null || one === undefined || other === null || other === undefined) { return false; } return one.executionOrder === other.executionOrder && one.success === other.success; } ExecutionSummary.equals = equals; })(ExecutionSummary = exports.ExecutionSummary || (exports.ExecutionSummary = {})); var NotebookCell; (function (NotebookCell) { function create(kind, document) { return { kind, document }; } NotebookCell.create = create; function is(value) { const candidate = value; return Is.objectLiteral(candidate) && NotebookCellKind.is(candidate.kind) && vscode_languageserver_types_1.DocumentUri.is(candidate.document) && (candidate.metadata === undefined || Is.objectLiteral(candidate.metadata)); } NotebookCell.is = is; function diff(one, two) { const result = new Set(); if (one.document !== two.document) { result.add('document'); } if (one.kind !== two.kind) { result.add('kind'); } if (one.executionSummary !== two.executionSummary) { result.add('executionSummary'); } if ((one.metadata !== undefined || two.metadata !== undefined) && !equalsMetadata(one.metadata, two.metadata)) { result.add('metadata'); } if ((one.executionSummary !== undefined || two.executionSummary !== undefined) && !ExecutionSummary.equals(one.executionSummary, two.executionSummary)) { result.add('executionSummary'); } return result; } NotebookCell.diff = diff; function equalsMetadata(one, other) { if (one === other) { return true; } if (one === null || one === undefined || other === null || other === undefined) { return false; } if (typeof one !== typeof other) { return false; } if (typeof one !== 'object') { return false; } const oneArray = Array.isArray(one); const otherArray = Array.isArray(other); if (oneArray !== otherArray) { return false; } if (oneArray && otherArray) { if (one.length !== other.length) { return false; } for (let i = 0; i < one.length; i++) { if (!equalsMetadata(one[i], other[i])) { return false; } } } if (Is.objectLiteral(one) && Is.objectLiteral(other)) { const oneKeys = Object.keys(one); const otherKeys = Object.keys(other); if (oneKeys.length !== otherKeys.length) { return false; } oneKeys.sort(); otherKeys.sort(); if (!equalsMetadata(oneKeys, otherKeys)) { return false; } for (let i = 0; i < oneKeys.length; i++) { const prop = oneKeys[i]; if (!equalsMetadata(one[prop], other[prop])) { return false; } } } return true; } })(NotebookCell = exports.NotebookCell || (exports.NotebookCell = {})); var NotebookDocument; (function (NotebookDocument) { function create(uri, notebookType, version, cells) { return { uri, notebookType, version, cells }; } NotebookDocument.create = create; function is(value) { const candidate = value; return Is.objectLiteral(candidate) && Is.string(candidate.uri) && vscode_languageserver_types_1.integer.is(candidate.version) && Is.typedArray(candidate.cells, NotebookCell.is); } NotebookDocument.is = is; })(NotebookDocument = exports.NotebookDocument || (exports.NotebookDocument = {})); var NotebookDocumentSyncRegistrationType; (function (NotebookDocumentSyncRegistrationType) { NotebookDocumentSyncRegistrationType.method = 'notebookDocument/sync'; NotebookDocumentSyncRegistrationType.messageDirection = messages_1.MessageDirection.clientToServer; NotebookDocumentSyncRegistrationType.type = new messages_1.RegistrationType(NotebookDocumentSyncRegistrationType.method); })(NotebookDocumentSyncRegistrationType = exports.NotebookDocumentSyncRegistrationType || (exports.NotebookDocumentSyncRegistrationType = {})); /** * A notification sent when a notebook opens. * * @since 3.17.0 */ var DidOpenNotebookDocumentNotification; (function (DidOpenNotebookDocumentNotification) { DidOpenNotebookDocumentNotification.method = 'notebookDocument/didOpen'; DidOpenNotebookDocumentNotification.messageDirection = messages_1.MessageDirection.clientToServer; DidOpenNotebookDocumentNotification.type = new messages_1.ProtocolNotificationType(DidOpenNotebookDocumentNotification.method); DidOpenNotebookDocumentNotification.registrationMethod = NotebookDocumentSyncRegistrationType.method; })(DidOpenNotebookDocumentNotification = exports.DidOpenNotebookDocumentNotification || (exports.DidOpenNotebookDocumentNotification = {})); var NotebookCellArrayChange; (function (NotebookCellArrayChange) { function is(value) { const candidate = value; return Is.objectLiteral(candidate) && vscode_languageserver_types_1.uinteger.is(candidate.start) && vscode_languageserver_types_1.uinteger.is(candidate.deleteCount) && (candidate.cells === undefined || Is.typedArray(candidate.cells, NotebookCell.is)); } NotebookCellArrayChange.is = is; function create(start, deleteCount, cells) { const result = { start, deleteCount }; if (cells !== undefined) { result.cells = cells; } return result; } NotebookCellArrayChange.create = create; })(NotebookCellArrayChange = exports.NotebookCellArrayChange || (exports.NotebookCellArrayChange = {})); var DidChangeNotebookDocumentNotification; (function (DidChangeNotebookDocumentNotification) { DidChangeNotebookDocumentNotification.method = 'notebookDocument/didChange'; DidChangeNotebookDocumentNotification.messageDirection = messages_1.MessageDirection.clientToServer; DidChangeNotebookDocumentNotification.type = new messages_1.ProtocolNotificationType(DidChangeNotebookDocumentNotification.method); DidChangeNotebookDocumentNotification.registrationMethod = NotebookDocumentSyncRegistrationType.method; })(DidChangeNotebookDocumentNotification = exports.DidChangeNotebookDocumentNotification || (exports.DidChangeNotebookDocumentNotification = {})); /** * A notification sent when a notebook document is saved. * * @since 3.17.0 */ var DidSaveNotebookDocumentNotification; (function (DidSaveNotebookDocumentNotification) { DidSaveNotebookDocumentNotification.method = 'notebookDocument/didSave'; DidSaveNotebookDocumentNotification.messageDirection = messages_1.MessageDirection.clientToServer; DidSaveNotebookDocumentNotification.type = new messages_1.ProtocolNotificationType(DidSaveNotebookDocumentNotification.method); DidSaveNotebookDocumentNotification.registrationMethod = NotebookDocumentSyncRegistrationType.method; })(DidSaveNotebookDocumentNotification = exports.DidSaveNotebookDocumentNotification || (exports.DidSaveNotebookDocumentNotification = {})); /** * A notification sent when a notebook closes. * * @since 3.17.0 */ var DidCloseNotebookDocumentNotification; (function (DidCloseNotebookDocumentNotification) { DidCloseNotebookDocumentNotification.method = 'notebookDocument/didClose'; DidCloseNotebookDocumentNotification.messageDirection = messages_1.MessageDirection.clientToServer; DidCloseNotebookDocumentNotification.type = new messages_1.ProtocolNotificationType(DidCloseNotebookDocumentNotification.method); DidCloseNotebookDocumentNotification.registrationMethod = NotebookDocumentSyncRegistrationType.method; })(DidCloseNotebookDocumentNotification = exports.DidCloseNotebookDocumentNotification || (exports.DidCloseNotebookDocumentNotification = {}));