Skip to content

Tags: finom/vovk

Tags

vovk-v3.7.0

Toggle vovk-v3.7.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat: kebab-case file naming across packages, scaffolding, and tests (#…

…23)

* feat(vovk): kebab-case source file naming with aliased subpath exports

Rename all camelCase/PascalCase source files (47 files, openAPIToVovkSchema/
dir) to kebab-case; dist mirrors src, so the subpaths become vovk/create-rpc
and vovk/create-validate-on-client. The old vovk/createRPC and
vovk/createValidateOnClient specifiers remain as exports-map aliases pointing
at the same files until the next major. Generated clients now default to
vovk/create-rpc. Version anchored at 3.6.0 so workspace installs satisfy the
new peer ranges.

* feat(vovk-cli): kebab-case scaffolding, template dirs, and generated-client imports

- vovk new scaffolds user-controller.ts / user-service.ts (classes stay
  PascalCase); module dirs use kebab-case; custom user templates keep
  naming themselves
- abort with a hint when a module exists under the pre-kebab naming, so
  legacy projects don't end up with duplicate classes
- client-templates dirs renamed (tsBase -> ts-base etc., incl. vovk-python
  and vovk-rust); template NAMES in fromTemplates/extends/requires are
  unchanged
- generated clients import vovk/create-rpc; vovk peer range bumped to
  >=3.6.0 (first version shipping the kebab subpaths)

* refactor(vovk-ajv): import vovk/create-validate-on-client

Peer range bumped to vovk >=3.6.0 (first version shipping the subpath).

* refactor(test): rename test workspace files to kebab-case

Fixtures under src/modules/generated are regenerated by the scaffolder and
verified idempotent; adds a regression test asserting vovk/createRPC and
vovk/createValidateOnClient stay importable as aliases of the kebab
subpaths until the next major.

* docs: update file-name references to kebab-case

* chore: regenerate root lockfile

* fix(deps): defer vovk peer floor bump until 3.6.0 is published

bun's resolver (verified with 1.3.14) spins in an infinite CPU loop when a
peerDependencies range is only satisfiable by a file:-linked package and no
published version matches — vovk >=3.6.0 while the registry tops out at
3.5.0 hung all four CI jobs for 6 hours inside the bun init tests.

Keep the peer floor at the registry-satisfiable >=3.0.0 for now; bump to
>=3.6.0 in a follow-up once vovk 3.6.0 is on npm, before vovk-cli/vovk-ajv
are published.

* ci: add 45-minute job timeout

The default 6-hour limit let a hung bun install burn 24 runner-hours
before failing. Normal runs finish well under 45 minutes.

* ci: free runner disk space on ubuntu

The second yarn init test hit ENOSPC: yarn copies packages/vovk-cli —
including the Next.js project caches accumulated by earlier specs — into
its cache and into node_modules on every file: install, and stock ubuntu
runners only have ~14 GB free. Removing the unused preinstalled
toolchains reclaims ~25-30 GB.

vovk-rust-v0.0.3

Toggle vovk-rust-v0.0.3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat: kebab-case file naming across packages, scaffolding, and tests (#…

…23)

* feat(vovk): kebab-case source file naming with aliased subpath exports

Rename all camelCase/PascalCase source files (47 files, openAPIToVovkSchema/
dir) to kebab-case; dist mirrors src, so the subpaths become vovk/create-rpc
and vovk/create-validate-on-client. The old vovk/createRPC and
vovk/createValidateOnClient specifiers remain as exports-map aliases pointing
at the same files until the next major. Generated clients now default to
vovk/create-rpc. Version anchored at 3.6.0 so workspace installs satisfy the
new peer ranges.

* feat(vovk-cli): kebab-case scaffolding, template dirs, and generated-client imports

- vovk new scaffolds user-controller.ts / user-service.ts (classes stay
  PascalCase); module dirs use kebab-case; custom user templates keep
  naming themselves
- abort with a hint when a module exists under the pre-kebab naming, so
  legacy projects don't end up with duplicate classes
- client-templates dirs renamed (tsBase -> ts-base etc., incl. vovk-python
  and vovk-rust); template NAMES in fromTemplates/extends/requires are
  unchanged
- generated clients import vovk/create-rpc; vovk peer range bumped to
  >=3.6.0 (first version shipping the kebab subpaths)

* refactor(vovk-ajv): import vovk/create-validate-on-client

Peer range bumped to vovk >=3.6.0 (first version shipping the subpath).

* refactor(test): rename test workspace files to kebab-case

Fixtures under src/modules/generated are regenerated by the scaffolder and
verified idempotent; adds a regression test asserting vovk/createRPC and
vovk/createValidateOnClient stay importable as aliases of the kebab
subpaths until the next major.

* docs: update file-name references to kebab-case

* chore: regenerate root lockfile

* fix(deps): defer vovk peer floor bump until 3.6.0 is published

bun's resolver (verified with 1.3.14) spins in an infinite CPU loop when a
peerDependencies range is only satisfiable by a file:-linked package and no
published version matches — vovk >=3.6.0 while the registry tops out at
3.5.0 hung all four CI jobs for 6 hours inside the bun init tests.

Keep the peer floor at the registry-satisfiable >=3.0.0 for now; bump to
>=3.6.0 in a follow-up once vovk 3.6.0 is on npm, before vovk-cli/vovk-ajv
are published.

* ci: add 45-minute job timeout

The default 6-hour limit let a hung bun install burn 24 runner-hours
before failing. Normal runs finish well under 45 minutes.

* ci: free runner disk space on ubuntu

The second yarn init test hit ENOSPC: yarn copies packages/vovk-cli —
including the Next.js project caches accumulated by earlier specs — into
its cache and into node_modules on every file: install, and stock ubuntu
runners only have ~14 GB free. Removing the unused preinstalled
toolchains reclaims ~25-30 GB.

vovk-python-v0.0.2

Toggle vovk-python-v0.0.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat: kebab-case file naming across packages, scaffolding, and tests (#…

…23)

* feat(vovk): kebab-case source file naming with aliased subpath exports

Rename all camelCase/PascalCase source files (47 files, openAPIToVovkSchema/
dir) to kebab-case; dist mirrors src, so the subpaths become vovk/create-rpc
and vovk/create-validate-on-client. The old vovk/createRPC and
vovk/createValidateOnClient specifiers remain as exports-map aliases pointing
at the same files until the next major. Generated clients now default to
vovk/create-rpc. Version anchored at 3.6.0 so workspace installs satisfy the
new peer ranges.

* feat(vovk-cli): kebab-case scaffolding, template dirs, and generated-client imports

- vovk new scaffolds user-controller.ts / user-service.ts (classes stay
  PascalCase); module dirs use kebab-case; custom user templates keep
  naming themselves
- abort with a hint when a module exists under the pre-kebab naming, so
  legacy projects don't end up with duplicate classes
- client-templates dirs renamed (tsBase -> ts-base etc., incl. vovk-python
  and vovk-rust); template NAMES in fromTemplates/extends/requires are
  unchanged
- generated clients import vovk/create-rpc; vovk peer range bumped to
  >=3.6.0 (first version shipping the kebab subpaths)

* refactor(vovk-ajv): import vovk/create-validate-on-client

Peer range bumped to vovk >=3.6.0 (first version shipping the subpath).

* refactor(test): rename test workspace files to kebab-case

Fixtures under src/modules/generated are regenerated by the scaffolder and
verified idempotent; adds a regression test asserting vovk/createRPC and
vovk/createValidateOnClient stay importable as aliases of the kebab
subpaths until the next major.

* docs: update file-name references to kebab-case

* chore: regenerate root lockfile

* fix(deps): defer vovk peer floor bump until 3.6.0 is published

bun's resolver (verified with 1.3.14) spins in an infinite CPU loop when a
peerDependencies range is only satisfiable by a file:-linked package and no
published version matches — vovk >=3.6.0 while the registry tops out at
3.5.0 hung all four CI jobs for 6 hours inside the bun init tests.

Keep the peer floor at the registry-satisfiable >=3.0.0 for now; bump to
>=3.6.0 in a follow-up once vovk 3.6.0 is on npm, before vovk-cli/vovk-ajv
are published.

* ci: add 45-minute job timeout

The default 6-hour limit let a hung bun install burn 24 runner-hours
before failing. Normal runs finish well under 45 minutes.

* ci: free runner disk space on ubuntu

The second yarn init test hit ENOSPC: yarn copies packages/vovk-cli —
including the Next.js project caches accumulated by earlier specs — into
its cache and into node_modules on every file: install, and stock ubuntu
runners only have ~14 GB free. Removing the unused preinstalled
toolchains reclaims ~25-30 GB.

vovk-cli-v0.2.0

Toggle vovk-cli-v0.2.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat: kebab-case file naming across packages, scaffolding, and tests (#…

…23)

* feat(vovk): kebab-case source file naming with aliased subpath exports

Rename all camelCase/PascalCase source files (47 files, openAPIToVovkSchema/
dir) to kebab-case; dist mirrors src, so the subpaths become vovk/create-rpc
and vovk/create-validate-on-client. The old vovk/createRPC and
vovk/createValidateOnClient specifiers remain as exports-map aliases pointing
at the same files until the next major. Generated clients now default to
vovk/create-rpc. Version anchored at 3.6.0 so workspace installs satisfy the
new peer ranges.

* feat(vovk-cli): kebab-case scaffolding, template dirs, and generated-client imports

- vovk new scaffolds user-controller.ts / user-service.ts (classes stay
  PascalCase); module dirs use kebab-case; custom user templates keep
  naming themselves
- abort with a hint when a module exists under the pre-kebab naming, so
  legacy projects don't end up with duplicate classes
- client-templates dirs renamed (tsBase -> ts-base etc., incl. vovk-python
  and vovk-rust); template NAMES in fromTemplates/extends/requires are
  unchanged
- generated clients import vovk/create-rpc; vovk peer range bumped to
  >=3.6.0 (first version shipping the kebab subpaths)

* refactor(vovk-ajv): import vovk/create-validate-on-client

Peer range bumped to vovk >=3.6.0 (first version shipping the subpath).

* refactor(test): rename test workspace files to kebab-case

Fixtures under src/modules/generated are regenerated by the scaffolder and
verified idempotent; adds a regression test asserting vovk/createRPC and
vovk/createValidateOnClient stay importable as aliases of the kebab
subpaths until the next major.

* docs: update file-name references to kebab-case

* chore: regenerate root lockfile

* fix(deps): defer vovk peer floor bump until 3.6.0 is published

bun's resolver (verified with 1.3.14) spins in an infinite CPU loop when a
peerDependencies range is only satisfiable by a file:-linked package and no
published version matches — vovk >=3.6.0 while the registry tops out at
3.5.0 hung all four CI jobs for 6 hours inside the bun init tests.

Keep the peer floor at the registry-satisfiable >=3.0.0 for now; bump to
>=3.6.0 in a follow-up once vovk 3.6.0 is on npm, before vovk-cli/vovk-ajv
are published.

* ci: add 45-minute job timeout

The default 6-hour limit let a hung bun install burn 24 runner-hours
before failing. Normal runs finish well under 45 minutes.

* ci: free runner disk space on ubuntu

The second yarn init test hit ENOSPC: yarn copies packages/vovk-cli —
including the Next.js project caches accumulated by earlier specs — into
its cache and into node_modules on every file: install, and stock ubuntu
runners only have ~14 GB free. Removing the unused preinstalled
toolchains reclaims ~25-30 GB.

vovk-ajv-v0.1.0

Toggle vovk-ajv-v0.1.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat: kebab-case file naming across packages, scaffolding, and tests (#…

…23)

* feat(vovk): kebab-case source file naming with aliased subpath exports

Rename all camelCase/PascalCase source files (47 files, openAPIToVovkSchema/
dir) to kebab-case; dist mirrors src, so the subpaths become vovk/create-rpc
and vovk/create-validate-on-client. The old vovk/createRPC and
vovk/createValidateOnClient specifiers remain as exports-map aliases pointing
at the same files until the next major. Generated clients now default to
vovk/create-rpc. Version anchored at 3.6.0 so workspace installs satisfy the
new peer ranges.

* feat(vovk-cli): kebab-case scaffolding, template dirs, and generated-client imports

- vovk new scaffolds user-controller.ts / user-service.ts (classes stay
  PascalCase); module dirs use kebab-case; custom user templates keep
  naming themselves
- abort with a hint when a module exists under the pre-kebab naming, so
  legacy projects don't end up with duplicate classes
- client-templates dirs renamed (tsBase -> ts-base etc., incl. vovk-python
  and vovk-rust); template NAMES in fromTemplates/extends/requires are
  unchanged
- generated clients import vovk/create-rpc; vovk peer range bumped to
  >=3.6.0 (first version shipping the kebab subpaths)

* refactor(vovk-ajv): import vovk/create-validate-on-client

Peer range bumped to vovk >=3.6.0 (first version shipping the subpath).

* refactor(test): rename test workspace files to kebab-case

Fixtures under src/modules/generated are regenerated by the scaffolder and
verified idempotent; adds a regression test asserting vovk/createRPC and
vovk/createValidateOnClient stay importable as aliases of the kebab
subpaths until the next major.

* docs: update file-name references to kebab-case

* chore: regenerate root lockfile

* fix(deps): defer vovk peer floor bump until 3.6.0 is published

bun's resolver (verified with 1.3.14) spins in an infinite CPU loop when a
peerDependencies range is only satisfiable by a file:-linked package and no
published version matches — vovk >=3.6.0 while the registry tops out at
3.5.0 hung all four CI jobs for 6 hours inside the bun init tests.

Keep the peer floor at the registry-satisfiable >=3.0.0 for now; bump to
>=3.6.0 in a follow-up once vovk 3.6.0 is on npm, before vovk-cli/vovk-ajv
are published.

* ci: add 45-minute job timeout

The default 6-hour limit let a hung bun install burn 24 runner-hours
before failing. Normal runs finish well under 45 minutes.

* ci: free runner disk space on ubuntu

The second yarn init test hit ENOSPC: yarn copies packages/vovk-cli —
including the Next.js project caches accumulated by earlier specs — into
its cache and into node_modules on every file: install, and stock ubuntu
runners only have ~14 GB free. Removing the unused preinstalled
toolchains reclaims ~25-30 GB.

vovk-v3.5.1

Toggle vovk-v3.5.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request #22 from finom/feat/openapi-mixin-filter-prune

feat(openapi): add filterOperations + pruneComponents for OpenAPI mixins

vovk-v3.5.0

Toggle vovk-v3.5.0's commit message
feat(openapi): add filterOperations + pruneComponents for OpenAPI mixins

filterOperations keeps only operations the predicate accepts, running before
getModuleName/getMethodName so fully filtered-out modules are never created.
pruneComponents (default false) shrinks meta.openAPIObject.components.schemas
to the transitive $ref closure of the kept handlers (validation slots + raw
operation objects), preserving key order and never mutating the input spec.

Stripe spec3.sdk.json with an 8-GET filter: 8.38 MB -> 1.20 MB (1693 -> 863
components, the strongly-connected core).

vovk-v3.4.1

Toggle vovk-v3.4.1's commit message
fix(openapi): dedupe mixin component $defs to fix JSON.stringify over…

…flow

OpenAPI mixin generation embedded each referenced component's full transitive
$ref closure into every validation slot's $defs, per handler. On large, densely
cross-referenced specs (Stripe: 1693 components x 534 ops) the output slots alone
produced ~270k component copies (~397MB); JSON.stringify (schema.json, mixins.json,
the dev segment writer) then exceeded V8's max string length -> "RangeError:
Invalid string length".

Response slots (output/iteration) are never validated at runtime and are typed via
x-tsType, so they don't need a self-contained $defs. applyComponentsSchemas gains an
`emitDefs` flag: for output/iteration it sets x-tsType + keeps the
#/components/schemas ref but emits no $defs (the components already live once per
segment in meta.openAPIObject.components.schemas). Body/query/params stay
self-contained, so runtime AJV is unchanged.

Generators that resolve $ref against a self-contained schema (Rust) reconstitute the
closure at render via reattachMixinDefs() -> output is byte-identical. TS (x-tsType)
and Python (no $ref resolution) need nothing.

Stripe mixin now generates with no crash (mixins.json ~17MB vs >400MB). Adds
openAPIToVovkSchema dedup + reattach-identity tests.

vovk-rust-v0.0.2

Toggle vovk-rust-v0.0.2's commit message
fix(openapi): dedupe mixin component $defs to fix JSON.stringify over…

…flow

OpenAPI mixin generation embedded each referenced component's full transitive
$ref closure into every validation slot's $defs, per handler. On large, densely
cross-referenced specs (Stripe: 1693 components x 534 ops) the output slots alone
produced ~270k component copies (~397MB); JSON.stringify (schema.json, mixins.json,
the dev segment writer) then exceeded V8's max string length -> "RangeError:
Invalid string length".

Response slots (output/iteration) are never validated at runtime and are typed via
x-tsType, so they don't need a self-contained $defs. applyComponentsSchemas gains an
`emitDefs` flag: for output/iteration it sets x-tsType + keeps the
#/components/schemas ref but emits no $defs (the components already live once per
segment in meta.openAPIObject.components.schemas). Body/query/params stay
self-contained, so runtime AJV is unchanged.

Generators that resolve $ref against a self-contained schema (Rust) reconstitute the
closure at render via reattachMixinDefs() -> output is byte-identical. TS (x-tsType)
and Python (no $ref resolution) need nothing.

Stripe mixin now generates with no crash (mixins.json ~17MB vs >400MB). Adds
openAPIToVovkSchema dedup + reattach-identity tests.

vovk-cli-v0.1.3

Toggle vovk-cli-v0.1.3's commit message
fix(openapi): dedupe mixin component $defs to fix JSON.stringify over…

…flow

OpenAPI mixin generation embedded each referenced component's full transitive
$ref closure into every validation slot's $defs, per handler. On large, densely
cross-referenced specs (Stripe: 1693 components x 534 ops) the output slots alone
produced ~270k component copies (~397MB); JSON.stringify (schema.json, mixins.json,
the dev segment writer) then exceeded V8's max string length -> "RangeError:
Invalid string length".

Response slots (output/iteration) are never validated at runtime and are typed via
x-tsType, so they don't need a self-contained $defs. applyComponentsSchemas gains an
`emitDefs` flag: for output/iteration it sets x-tsType + keeps the
#/components/schemas ref but emits no $defs (the components already live once per
segment in meta.openAPIObject.components.schemas). Body/query/params stay
self-contained, so runtime AJV is unchanged.

Generators that resolve $ref against a self-contained schema (Rust) reconstitute the
closure at render via reattachMixinDefs() -> output is byte-identical. TS (x-tsType)
and Python (no $ref resolution) need nothing.

Stripe mixin now generates with no crash (mixins.json ~17MB vs >400MB). Adds
openAPIToVovkSchema dedup + reattach-identity tests.