From fb5eb8837d867c2321e4ce16bcca0b48ebb9fe6f Mon Sep 17 00:00:00 2001 From: James Dabbs Date: Mon, 3 Jun 2024 21:18:55 -0700 Subject: [PATCH] refactor: fold shared logic back in to core package --- packages/compile/package.json | 2 +- packages/core/bin/build | 12 ++++ packages/core/package.json | 10 ++- packages/core/src/Bundle.ts | 6 +- packages/core/src/Id.ts | 36 +++++++++++ packages/core/src/Property.ts | 11 ++++ packages/core/src/Space.ts | 11 ++++ packages/core/src/index.ts | 10 +-- packages/vscode/package.json | 1 + packages/vscode/src/extension.ts | 2 +- packages/vscode/src/{models => }/logging.ts | 0 packages/vscode/src/models/EntityStore.ts | 64 ++++++++----------- packages/vscode/src/models/schemas.ts | 21 ------ packages/vscode/src/models/types.ts | 38 ----------- .../src/providers/BaseEntityProvider.ts | 3 + .../src/providers/EntityDefinitionProvider.ts | 4 +- .../src/providers/EntityIdHoverProvider.ts | 13 ++-- .../src/providers/EntityIdLinkProvider.ts | 11 ++-- .../src/providers/ExternalLinkProvider.ts | 4 +- .../src/providers/decorationProvider.ts | 11 +++- packages/vscode/src/test/extension.test.ts | 15 ----- packages/vscode/tsconfig.json | 8 ++- pnpm-lock.yaml | 16 ++--- 23 files changed, 153 insertions(+), 156 deletions(-) create mode 100755 packages/core/bin/build rename packages/vscode/src/{models => }/logging.ts (100%) delete mode 100644 packages/vscode/src/models/schemas.ts delete mode 100644 packages/vscode/src/models/types.ts delete mode 100644 packages/vscode/src/test/extension.test.ts diff --git a/packages/compile/package.json b/packages/compile/package.json index 8aedfba7..91176d6a 100644 --- a/packages/compile/package.json +++ b/packages/compile/package.json @@ -37,7 +37,7 @@ "glob": "^8.1.0", "js-yaml": "^4.1.0", "yaml-front-matter": "^4.1.1", - "zod": "^3.22.4" + "zod": "^3.23.8" }, "devDependencies": { "@types/cors": "^2.8.17", diff --git a/packages/core/bin/build b/packages/core/bin/build new file mode 100755 index 00000000..611e8455 --- /dev/null +++ b/packages/core/bin/build @@ -0,0 +1,12 @@ +#!/bin/bash +set -exo pipefail + +# VSCode extensions can only use CommonJS modules (for now), but we want to +# continue using our standard Vite/ESM build process elsewhere. This builds +# both versions, corresponding to `package.json`'s `exports` field. + +tsc --module es2022 --outDir dist/esm/ +echo '{"type": "module"}' > dist/esm/package.json + +tsc --module commonjs --outDir dist/cjs/ +echo '{"type": "commonjs"}' > dist/cjs/package.json diff --git a/packages/core/package.json b/packages/core/package.json index 1b019672..3bb83723 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -14,15 +14,19 @@ }, "license": "MIT", "author": "James Dabbs (https://jdabbs.com)", - "main": "./dist/esm/index.js", "types": "./dist/types/index.d.ts", + "exports": { + "types": "./dist/types/index.d.ts", + "require": "./dist/cjs/index.js", + "import": "./dist/esm/index.js" + }, "repository": { "type": "git", "url": "git+https://github.com/pi-base/web.git" }, "scripts": { "build:peg": "peggy --plugin ./node_modules/ts-pegjs/dist/tspegjs -o src/Formula/Grammar.ts --cache src/Formula/Grammar.pegjs", - "build": "pnpm build:peg && tsc", + "build": "pnpm build:peg && ./bin/build", "dev": "pnpm build:peg && tsc --watch", "test": "vitest run", "test:cov": "vitest run --coverage", @@ -40,7 +44,7 @@ "unified": "^10.1.2", "unist-util-is": "^5.2.1", "unist-util-visit": "^4.1.2", - "zod": "^3.22.4" + "zod": "^3.23.8" }, "devDependencies": { "@types/debug": "^4.1.12", diff --git a/packages/core/src/Bundle.ts b/packages/core/src/Bundle.ts index cf9ad8a2..df1313dc 100644 --- a/packages/core/src/Bundle.ts +++ b/packages/core/src/Bundle.ts @@ -6,11 +6,7 @@ import { Space, spaceSchema } from './Space.js' import { Theorem, theoremSchema } from './Theorem.js' import { Trait, traitSchema } from './Trait.js' -export const defaultHost = import.meta.env?.VITE_PUBLIC_DATA_URL - ? import.meta.env.VITE_PUBLIC_DATA_URL - : import.meta.env?.DEV - ? 'http://localhost:3141' - : 'https://pi-base-bundles.s3.us-east-2.amazonaws.com' +export const defaultHost = 'https://pi-base-bundles.s3.us-east-2.amazonaws.com' export type Version = { ref: string diff --git a/packages/core/src/Id.ts b/packages/core/src/Id.ts index 6f8c148d..8c80cbba 100644 --- a/packages/core/src/Id.ts +++ b/packages/core/src/Id.ts @@ -54,3 +54,39 @@ export function toInt(id: string): number { return tagged.id } + +// TODO: these were extracted from other parallel-but-divergent implementations +// and should be unified. + +type Pad = '' | '0' | '00' | '000' | '0000' | '00000' | '00000' +type XId = `${Prefix}${Pad}${number}` + +export type SId = XId<'S'> +export type PId = XId<'P'> +export type TId = XId<'T'> +export type SPId = [SId, PId] +export type EntityId = SId | PId | TId | SPId + +export function isSpaceId(token: string): token is SId { + return token.match(/^S\d{1,6}$/) !== null +} + +export function isPropertyId(token: string): token is PId { + return token.match(/^P\d{1,6}$/) !== null +} + +export function isTheoremId(token: string): token is SId { + return token.match(/^T\d{1,6}$/) !== null +} + +export function isTraitId(pair: [string, string]): pair is SPId { + return isSpaceId(pair[0]) && isPropertyId(pair[1]) +} + +export const idExp = /[PST]\d{1,6}/g + +export function normalizeId(id: SId): SId +export function normalizeId(id: PId): PId +export function normalizeId(id: string) { + return `${id[0]}${id.slice(1).padStart(6, '0')}` +} diff --git a/packages/core/src/Property.ts b/packages/core/src/Property.ts index e06fd96f..889b48e8 100644 --- a/packages/core/src/Property.ts +++ b/packages/core/src/Property.ts @@ -1,5 +1,15 @@ import { z } from 'zod' import { recordSchema } from './Record.js' +import { refSchema } from './Ref.js' + +export const propertyPageSchema = z.object({ + uid: z.string(), + name: z.string(), + aliases: z.array(z.string()).optional(), + counterexamples_id: z.number().nullable().optional(), + refs: z.array(refSchema).optional(), + description: z.string(), +}) export const propertySchema = z.intersection( z.object({ @@ -10,3 +20,4 @@ export const propertySchema = z.intersection( ) export type Property = z.infer +export type PropertyPage = z.infer diff --git a/packages/core/src/Space.ts b/packages/core/src/Space.ts index 8375ef6c..e16cd604 100644 --- a/packages/core/src/Space.ts +++ b/packages/core/src/Space.ts @@ -1,5 +1,15 @@ import { z } from 'zod' import { recordSchema } from './Record.js' +import { refSchema } from './Ref.js' + +export const spacePageSchema = z.object({ + uid: z.string(), + name: z.string(), + aliases: z.array(z.string()).optional(), + counterexamples_id: z.number().nullable().optional(), + refs: z.array(refSchema).optional(), + description: z.string(), +}) export const spaceSchema = z.intersection( z.object({ @@ -11,3 +21,4 @@ export const spaceSchema = z.intersection( ) export type Space = z.infer +export type SpacePage = z.infer diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 39595a60..3ed58d42 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -1,20 +1,20 @@ import { formulaSchema } from './Formula.js' -import { propertySchema } from './Property.js' -import { spaceSchema } from './Space.js' +import { propertySchema, propertyPageSchema } from './Property.js' +import { spaceSchema, spacePageSchema } from './Space.js' import { theoremSchema } from './Theorem.js' import { traitSchema } from './Trait.js' export { type Bundle } from './Bundle.js' export { type Formula, type And, type Atom, type Or } from './Formula.js' export { parser } from './Parser.js' -export { type Property } from './Property.js' +export { type Property, PropertyPage } from './Property.js' export { ImplicationIndex, deduceTraits, disproveFormula, proveTheorem, } from './Logic/index.js' -export { type Space } from './Space.js' +export { type Space, SpacePage } from './Space.js' export { type Theorem } from './Theorem.js' export { type Trait } from './Trait.js' export { type Version } from './Bundle.js' @@ -29,7 +29,9 @@ export * as TestUtils from './testUtils.js' export const schemas = { formula: formulaSchema, property: propertySchema, + propertyPage: propertyPageSchema, space: spaceSchema, + spacePage: spacePageSchema, theorem: theoremSchema, trait: traitSchema, } diff --git a/packages/vscode/package.json b/packages/vscode/package.json index e3820d4d..96a95ddd 100644 --- a/packages/vscode/package.json +++ b/packages/vscode/package.json @@ -58,6 +58,7 @@ "npm-run-all": "^4.1.5" }, "dependencies": { + "@pi-base/core": "workspace:*", "debug": "^4.3.4", "js-yaml": "^4.1.0", "zod": "^3.23.8" diff --git a/packages/vscode/src/extension.ts b/packages/vscode/src/extension.ts index cfd2727a..c90283c7 100644 --- a/packages/vscode/src/extension.ts +++ b/packages/vscode/src/extension.ts @@ -22,7 +22,7 @@ export function activate(context: vscode.ExtensionContext) { return } - const entities = new EntityStore(basePath.uri.fsPath, vscode.workspace.fs) + const entities = new EntityStore(basePath.uri, vscode.workspace.fs) context.subscriptions.push( vscode.languages.registerHoverProvider( diff --git a/packages/vscode/src/models/logging.ts b/packages/vscode/src/logging.ts similarity index 100% rename from packages/vscode/src/models/logging.ts rename to packages/vscode/src/logging.ts diff --git a/packages/vscode/src/models/EntityStore.ts b/packages/vscode/src/models/EntityStore.ts index 46a7687b..32cebf00 100644 --- a/packages/vscode/src/models/EntityStore.ts +++ b/packages/vscode/src/models/EntityStore.ts @@ -1,24 +1,16 @@ import * as vscode from 'vscode' import * as yaml from 'js-yaml' import { z } from 'zod' -import { propertySchema, spaceSchema } from './schemas' -import { - Property, - PropertyId, - Space, - SpaceId, - isPropertyId, - isSpaceId, - normalizeId, -} from './types' +import { SpacePage, PropertyPage, Id, schemas } from '@pi-base/core' type Location = { path: string; uri: vscode.Uri } +// Repository for filesystem-backed entities (spaces, properties, etc.) export class EntityStore { #pageCache: Record = {} constructor( - private readonly root: string, + private readonly root: vscode.Uri, private readonly fs: vscode.FileSystem, ) {} @@ -28,9 +20,9 @@ export class EntityStore { lookup(token: string) { try { - if (isSpaceId(token)) { + if (Id.isSpaceId(token)) { return this.fetch(token) - } else if (isPropertyId(token)) { + } else if (Id.isPropertyId(token)) { return this.fetch(token) } } catch (error) { @@ -39,19 +31,19 @@ export class EntityStore { } } - private async fetch(id: SpaceId): Promise<(Space & Location) | null> - private async fetch(id: PropertyId): Promise<(Property & Location) | null> + private async fetch(id: Id.SId): Promise<(SpacePage & Location) | null> + private async fetch(id: Id.PId): Promise<(PropertyPage & Location) | null> private async fetch(id: string) { switch (id[0]) { case 'S': - return this.load( - `spaces/${normalizeId(id as SpaceId)}/README.md`, - spaceSchema, + return this.load( + `spaces/${Id.normalizeId(id as Id.SId)}/README.md`, + schemas.spacePage, ) case 'P': - return this.load( - `properties/${normalizeId(id as PropertyId)}.md`, - propertySchema, + return this.load( + `properties/${Id.normalizeId(id as Id.PId)}.md`, + schemas.propertyPage, ) default: return null @@ -59,40 +51,34 @@ export class EntityStore { } private async load(path: string, schema: z.ZodSchema) { - path = `${this.root}/${path}` - const uri = expandPath(path) + path = `${this.root.path}/${path}` + const uri = this.expandPath(path) + if (!this.#pageCache[path]) { const bytes = await this.fs.readFile(uri) this.#pageCache[path] = new TextDecoder().decode(bytes) } const parsed = parseDocument(schema, this.#pageCache[path]) - if (!parsed) { - return null - } - if (parsed.error) { + if (!parsed || parsed.error) { + console.error('Failed to parse', { path, contents: this.#pageCache[path], error: parsed?.error.errors }) // TODO: handle return null } return { ...parsed.data, path, uri } } -} -function expandPath(path: string) { - // In github.dev, file URIs look like vscode-vfs://github%2B.../pi-base/data/... - // See also notes in https://code.visualstudio.com/api/extension-guides/web-extensions#migrate-extension-with-code - // TODO: clean this up / make it less implicit - const uri = vscode.Uri.file(path) - const folders = vscode.workspace.workspaceFolders - if (folders) { - const root = folders[0].uri - return uri.with({ authority: root.authority, scheme: root.scheme }) - } else { - return uri + private expandPath(path: string) { + // In github.dev, file URIs look like vscode-vfs://github%2B.../pi-base/data/... + // See also notes in https://code.visualstudio.com/api/extension-guides/web-extensions#migrate-extension-with-code + // TODO: clean this up / make it less implicit + const { authority, scheme } = this.root + return vscode.Uri.file(path).with({ scheme, authority }) } } + function parseDocument(schema: z.ZodSchema, contents: string) { const match = contents.match( /^(---)?\s*(?[\s\S]*?)\s*---(?[\s\S]*)/, diff --git a/packages/vscode/src/models/schemas.ts b/packages/vscode/src/models/schemas.ts deleted file mode 100644 index b42bce6c..00000000 --- a/packages/vscode/src/models/schemas.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { z } from 'zod' - -const refSchema = z.object({ name: z.string() }) - -export const propertySchema = z.object({ - uid: z.string(), - name: z.string(), - aliases: z.array(z.string()).optional(), - counterexamples_id: z.number().nullable().optional(), - refs: z.array(refSchema).optional(), - description: z.string(), -}) - -export const spaceSchema = z.object({ - uid: z.string(), - name: z.string(), - aliases: z.array(z.string()).optional(), - counterexamples_id: z.number().nullable().optional(), - refs: z.array(refSchema).optional(), - description: z.string(), -}) diff --git a/packages/vscode/src/models/types.ts b/packages/vscode/src/models/types.ts deleted file mode 100644 index f1d1350c..00000000 --- a/packages/vscode/src/models/types.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { z } from 'zod' -import { propertySchema, spaceSchema } from './schemas' - -type Pad = '' | '0' | '00' | '000' | '0000' | '00000' | '00000' -type Id = `${Prefix}${Pad}${number}` - -export type SpaceId = Id<'S'> -export type PropertyId = Id<'P'> -export type TheoremId = Id<'T'> -export type TraitId = [SpaceId, PropertyId] -export type EntityId = SpaceId | PropertyId | TheoremId | TraitId - -export const idExp = /[PST]\d{1,6}/g - -export function isSpaceId(token: string): token is SpaceId { - return token.match(/^S\d{1,6}$/) !== null -} - -export function isPropertyId(token: string): token is PropertyId { - return token.match(/^P\d{1,6}$/) !== null -} - -export function isTheoremId(token: string): token is SpaceId { - return token.match(/^T\d{1,6}$/) !== null -} - -export function isTraitId(pair: [string, string]): pair is TraitId { - return isSpaceId(pair[0]) && isPropertyId(pair[1]) -} - -export function normalizeId(id: SpaceId): SpaceId -export function normalizeId(id: PropertyId): PropertyId -export function normalizeId(id: string) { - return `${id[0]}${id.slice(1).padStart(6, '0')}` -} - -export type Property = z.infer -export type Space = z.infer diff --git a/packages/vscode/src/providers/BaseEntityProvider.ts b/packages/vscode/src/providers/BaseEntityProvider.ts index 57287d13..974e3cac 100644 --- a/packages/vscode/src/providers/BaseEntityProvider.ts +++ b/packages/vscode/src/providers/BaseEntityProvider.ts @@ -4,6 +4,8 @@ import { EntityStore } from '../models/EntityStore' export class BaseEntityProvider { constructor(protected readonly entities: EntityStore) {} + // Attempt to resolve the word at the given {position} in the {document} to a + // known entity in the {EntityStore}. protected entityAtPosition( document: vscode.TextDocument, position: vscode.Position, @@ -14,6 +16,7 @@ export class BaseEntityProvider { } } +// Extract a collection of Ranges from a document by regex export function matchingRanges( document: vscode.TextDocument, exp: RegExp, diff --git a/packages/vscode/src/providers/EntityDefinitionProvider.ts b/packages/vscode/src/providers/EntityDefinitionProvider.ts index 85e635ab..e898c09c 100644 --- a/packages/vscode/src/providers/EntityDefinitionProvider.ts +++ b/packages/vscode/src/providers/EntityDefinitionProvider.ts @@ -1,7 +1,9 @@ import * as vscode from 'vscode' import { BaseEntityProvider } from './BaseEntityProvider' -import { debug } from '../models/logging' +import { debug } from '../logging' +// Support go-to-definition for entity IDs. +// // TODO: also implement a reference provider? export class EntityDefinitionProvider extends BaseEntityProvider diff --git a/packages/vscode/src/providers/EntityIdHoverProvider.ts b/packages/vscode/src/providers/EntityIdHoverProvider.ts index 5d5ce558..a5820da0 100644 --- a/packages/vscode/src/providers/EntityIdHoverProvider.ts +++ b/packages/vscode/src/providers/EntityIdHoverProvider.ts @@ -1,7 +1,8 @@ import * as vscode from 'vscode' import { BaseEntityProvider } from './BaseEntityProvider' -import { debug } from '../models/logging' +import { debug } from '../logging' +// Preview the entitiy description when hovering over an entity ID. export class EntityIdHoverProvider extends BaseEntityProvider implements vscode.HoverProvider @@ -9,17 +10,17 @@ export class EntityIdHoverProvider async provideHover(document: vscode.TextDocument, position: vscode.Position) { const entity = await this.entityAtPosition(document, position) debug('EntityIdHoverProvider#provideHover', { entity, position }) + if (!entity) { return } const { path, name, description } = entity - const markdown = new vscode.MarkdownString() - markdown.appendMarkdown( - [`# [${name}](${path})`, '', description].join('\n'), + return new vscode.Hover( + new vscode.MarkdownString( + [`# [${name}](${path})`, '', description].join('\n'), + ), ) - - return new vscode.Hover(markdown) } } diff --git a/packages/vscode/src/providers/EntityIdLinkProvider.ts b/packages/vscode/src/providers/EntityIdLinkProvider.ts index 7f67caec..eaa0f65e 100644 --- a/packages/vscode/src/providers/EntityIdLinkProvider.ts +++ b/packages/vscode/src/providers/EntityIdLinkProvider.ts @@ -1,23 +1,22 @@ import * as vscode from 'vscode' import { BaseEntityProvider, matchingRanges } from './BaseEntityProvider' -import { idExp } from '../models/types' -import { debug } from '../models/logging' +import { Id } from '@pi-base/core' +import { debug } from '../logging' +// Link entity IDs to their defining files. export class EntityIdLinkProvider extends BaseEntityProvider implements vscode.DocumentLinkProvider { async provideDocumentLinks(document: vscode.TextDocument) { - debug('EntityIdLinkProvider#provideDocumentLinks') - - const ranges = matchingRanges(document, idExp) + const ranges = matchingRanges(document, Id.idExp) const links: vscode.DocumentLink[] = [] for (const [range, match] of ranges) { const id = match[0] const entity = await this.entities.lookup(id) if (!entity) { - return + continue } links.push({ diff --git a/packages/vscode/src/providers/ExternalLinkProvider.ts b/packages/vscode/src/providers/ExternalLinkProvider.ts index 300fe50d..8d54c9c0 100644 --- a/packages/vscode/src/providers/ExternalLinkProvider.ts +++ b/packages/vscode/src/providers/ExternalLinkProvider.ts @@ -1,9 +1,10 @@ import * as vscode from 'vscode' import { matchingRanges } from './BaseEntityProvider' -import { debug } from '../models/logging' +import { debug } from '../logging' type LinkKinds = 'doi' | 'mr' | 'wikipedia' | 'mathse' | 'mo' +// Link external identifiers out to the corresponding authority. export class ExternalLinkProvider implements vscode.DocumentLinkProvider { provideDocumentLinks(document: vscode.TextDocument) { debug('ExternalLinkProvider#provideDocumentLinks') @@ -28,6 +29,7 @@ export class ExternalLinkProvider implements vscode.DocumentLinkProvider { } } +// TODO: unify with implementation in viewer function format(kind: LinkKinds, id: string) { switch (kind) { case 'doi': diff --git a/packages/vscode/src/providers/decorationProvider.ts b/packages/vscode/src/providers/decorationProvider.ts index 511d1530..79e94f87 100644 --- a/packages/vscode/src/providers/decorationProvider.ts +++ b/packages/vscode/src/providers/decorationProvider.ts @@ -1,5 +1,5 @@ import * as vscode from 'vscode' -import { idExp } from '../models/types' +import { Id } from '@pi-base/core' import { EntityStore } from '../models/EntityStore' import { matchingRanges } from './BaseEntityProvider' @@ -15,10 +15,13 @@ export function setupDecorationProvider( entities: EntityStore, ) { let activeEditor = vscode.window.activeTextEditor + + // Trigger an initial update if (activeEditor) { triggerUpdateDecorations(activeEditor, entities) } + // Update the decorations when the active editor changes vscode.window.onDidChangeActiveTextEditor( editor => { activeEditor = editor @@ -30,6 +33,8 @@ export function setupDecorationProvider( context.subscriptions, ) + // On document change, update both the decorations and the contents of the + // EntityStore corresponding to that document. vscode.workspace.onDidChangeTextDocument( event => { if (activeEditor && event.document === activeEditor.document) { @@ -47,13 +52,13 @@ async function triggerUpdateDecorations( editor: vscode.TextEditor, entities: EntityStore, ) { - const ranges = matchingRanges(editor.document, idExp) + const ranges = matchingRanges(editor.document, Id.idExp) const decorations: vscode.DecorationOptions[] = [] for (const [range, match] of ranges) { const entity = await entities.lookup(match[0]) if (!entity) { - return + continue } decorations.push({ diff --git a/packages/vscode/src/test/extension.test.ts b/packages/vscode/src/test/extension.test.ts deleted file mode 100644 index 101bd6dd..00000000 --- a/packages/vscode/src/test/extension.test.ts +++ /dev/null @@ -1,15 +0,0 @@ -import * as assert from 'assert' - -// You can import and use all API from the 'vscode' module -// as well as import your extension to test it -import * as vscode from 'vscode' -// import * as myExtension from '../../extension'; - -suite('Extension Test Suite', () => { - vscode.window.showInformationMessage('Start all tests.') - - test('Sample test', () => { - assert.strictEqual(-1, [1, 2, 3].indexOf(5)) - assert.strictEqual(-1, [1, 2, 3].indexOf(0)) - }) -}) diff --git a/packages/vscode/tsconfig.json b/packages/vscode/tsconfig.json index 8a79f20f..8ffc0cbf 100644 --- a/packages/vscode/tsconfig.json +++ b/packages/vscode/tsconfig.json @@ -1,13 +1,15 @@ { "compilerOptions": { - "module": "Node16", + "module": "ES2022", "target": "ES2022", "lib": [ - "ES2022" + "ES2022", + "DOM" ], "sourceMap": true, "rootDir": "src", - "strict": true /* enable all strict type-checking options */ + "strict": true, /* enable all strict type-checking options */ + "moduleResolution": "bundler" /* Additional Checks */ // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 51865bab..fea1eecd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -60,8 +60,8 @@ importers: specifier: ^4.1.1 version: 4.1.1 zod: - specifier: ^3.22.4 - version: 3.22.4 + specifier: ^3.23.8 + version: 3.23.8 devDependencies: '@types/cors': specifier: ^2.8.17 @@ -127,8 +127,8 @@ importers: specifier: ^4.1.2 version: 4.1.2 zod: - specifier: ^3.22.4 - version: 3.22.4 + specifier: ^3.23.8 + version: 3.23.8 devDependencies: '@types/debug': specifier: ^4.1.12 @@ -245,6 +245,9 @@ importers: packages/vscode: dependencies: + '@pi-base/core': + specifier: workspace:* + version: link:../core debug: specifier: ^4.3.4 version: 4.3.4(supports-color@8.1.1) @@ -4459,9 +4462,6 @@ packages: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} - zod@3.22.4: - resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} - zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} @@ -9225,8 +9225,6 @@ snapshots: yocto-queue@1.0.0: {} - zod@3.22.4: {} - zod@3.23.8: {} zwitch@2.0.4: {}