@mutates/cli 2.1.0
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.
- package/README.md +105 -0
- package/bin/mutates.d.ts +1 -0
- package/bin/mutates.js +37 -0
- package/bin/mutates.js.map +1 -0
- package/package.json +46 -0
- package/src/client/format-snapshot.d.ts +13 -0
- package/src/client/format-snapshot.js +38 -0
- package/src/client/format-snapshot.js.map +1 -0
- package/src/client/output.d.ts +25 -0
- package/src/client/output.js +76 -0
- package/src/client/output.js.map +1 -0
- package/src/client/rpc-client-testing.d.ts +12 -0
- package/src/client/rpc-client-testing.js +21 -0
- package/src/client/rpc-client-testing.js.map +1 -0
- package/src/client/rpc-client.d.ts +35 -0
- package/src/client/rpc-client.js +172 -0
- package/src/client/rpc-client.js.map +1 -0
- package/src/commands/core/close.d.ts +28 -0
- package/src/commands/core/close.js +74 -0
- package/src/commands/core/close.js.map +1 -0
- package/src/commands/core/diff.d.ts +25 -0
- package/src/commands/core/diff.js +71 -0
- package/src/commands/core/diff.js.map +1 -0
- package/src/commands/core/find.d.ts +30 -0
- package/src/commands/core/find.js +80 -0
- package/src/commands/core/find.js.map +1 -0
- package/src/commands/core/list-files.d.ts +24 -0
- package/src/commands/core/list-files.js +62 -0
- package/src/commands/core/list-files.js.map +1 -0
- package/src/commands/core/open.d.ts +19 -0
- package/src/commands/core/open.js +49 -0
- package/src/commands/core/open.js.map +1 -0
- package/src/commands/core/reload.d.ts +26 -0
- package/src/commands/core/reload.js +64 -0
- package/src/commands/core/reload.js.map +1 -0
- package/src/commands/core/save.d.ts +29 -0
- package/src/commands/core/save.js +69 -0
- package/src/commands/core/save.js.map +1 -0
- package/src/commands/core/schema.d.ts +26 -0
- package/src/commands/core/schema.js +53 -0
- package/src/commands/core/schema.js.map +1 -0
- package/src/commands/core/sessions.d.ts +2 -0
- package/src/commands/core/sessions.js +79 -0
- package/src/commands/core/sessions.js.map +1 -0
- package/src/commands/core/skills.d.ts +2 -0
- package/src/commands/core/skills.js +72 -0
- package/src/commands/core/skills.js.map +1 -0
- package/src/commands/core/snapshot.d.ts +31 -0
- package/src/commands/core/snapshot.js +73 -0
- package/src/commands/core/snapshot.js.map +1 -0
- package/src/commands/generated/accessors/add.d.ts +28 -0
- package/src/commands/generated/accessors/add.js +70 -0
- package/src/commands/generated/accessors/add.js.map +1 -0
- package/src/commands/generated/accessors/edit.d.ts +28 -0
- package/src/commands/generated/accessors/edit.js +70 -0
- package/src/commands/generated/accessors/edit.js.map +1 -0
- package/src/commands/generated/accessors/get.d.ts +28 -0
- package/src/commands/generated/accessors/get.js +70 -0
- package/src/commands/generated/accessors/get.js.map +1 -0
- package/src/commands/generated/accessors/remove.d.ts +28 -0
- package/src/commands/generated/accessors/remove.js +70 -0
- package/src/commands/generated/accessors/remove.js.map +1 -0
- package/src/commands/generated/all-decorators/get.d.ts +27 -0
- package/src/commands/generated/all-decorators/get.js +70 -0
- package/src/commands/generated/all-decorators/get.js.map +1 -0
- package/src/commands/generated/class-accessors/get.d.ts +28 -0
- package/src/commands/generated/class-accessors/get.js +70 -0
- package/src/commands/generated/class-accessors/get.js.map +1 -0
- package/src/commands/generated/class-methods/get.d.ts +28 -0
- package/src/commands/generated/class-methods/get.js +70 -0
- package/src/commands/generated/class-methods/get.js.map +1 -0
- package/src/commands/generated/class-properties/add.d.ts +28 -0
- package/src/commands/generated/class-properties/add.js +70 -0
- package/src/commands/generated/class-properties/add.js.map +1 -0
- package/src/commands/generated/class-properties/edit.d.ts +28 -0
- package/src/commands/generated/class-properties/edit.js +70 -0
- package/src/commands/generated/class-properties/edit.js.map +1 -0
- package/src/commands/generated/class-properties/get.d.ts +27 -0
- package/src/commands/generated/class-properties/get.js +70 -0
- package/src/commands/generated/class-properties/get.js.map +1 -0
- package/src/commands/generated/class-properties/remove.d.ts +28 -0
- package/src/commands/generated/class-properties/remove.js +70 -0
- package/src/commands/generated/class-properties/remove.js.map +1 -0
- package/src/commands/generated/classes/add.d.ts +29 -0
- package/src/commands/generated/classes/add.js +70 -0
- package/src/commands/generated/classes/add.js.map +1 -0
- package/src/commands/generated/classes/edit.d.ts +28 -0
- package/src/commands/generated/classes/edit.js +70 -0
- package/src/commands/generated/classes/edit.js.map +1 -0
- package/src/commands/generated/classes/get.d.ts +27 -0
- package/src/commands/generated/classes/get.js +70 -0
- package/src/commands/generated/classes/get.js.map +1 -0
- package/src/commands/generated/classes/remove.d.ts +28 -0
- package/src/commands/generated/classes/remove.js +70 -0
- package/src/commands/generated/classes/remove.js.map +1 -0
- package/src/commands/generated/constructors/add.d.ts +28 -0
- package/src/commands/generated/constructors/add.js +70 -0
- package/src/commands/generated/constructors/add.js.map +1 -0
- package/src/commands/generated/constructors/edit.d.ts +28 -0
- package/src/commands/generated/constructors/edit.js +70 -0
- package/src/commands/generated/constructors/edit.js.map +1 -0
- package/src/commands/generated/constructors/get.d.ts +28 -0
- package/src/commands/generated/constructors/get.js +70 -0
- package/src/commands/generated/constructors/get.js.map +1 -0
- package/src/commands/generated/constructors/remove.d.ts +28 -0
- package/src/commands/generated/constructors/remove.js +70 -0
- package/src/commands/generated/constructors/remove.js.map +1 -0
- package/src/commands/generated/decorators/add.d.ts +28 -0
- package/src/commands/generated/decorators/add.js +70 -0
- package/src/commands/generated/decorators/add.js.map +1 -0
- package/src/commands/generated/decorators/edit.d.ts +28 -0
- package/src/commands/generated/decorators/edit.js +70 -0
- package/src/commands/generated/decorators/edit.js.map +1 -0
- package/src/commands/generated/decorators/get.d.ts +28 -0
- package/src/commands/generated/decorators/get.js +70 -0
- package/src/commands/generated/decorators/get.js.map +1 -0
- package/src/commands/generated/decorators/remove.d.ts +28 -0
- package/src/commands/generated/decorators/remove.js +70 -0
- package/src/commands/generated/decorators/remove.js.map +1 -0
- package/src/commands/generated/enums/add.d.ts +29 -0
- package/src/commands/generated/enums/add.js +70 -0
- package/src/commands/generated/enums/add.js.map +1 -0
- package/src/commands/generated/enums/edit.d.ts +28 -0
- package/src/commands/generated/enums/edit.js +70 -0
- package/src/commands/generated/enums/edit.js.map +1 -0
- package/src/commands/generated/enums/get.d.ts +27 -0
- package/src/commands/generated/enums/get.js +70 -0
- package/src/commands/generated/enums/get.js.map +1 -0
- package/src/commands/generated/enums/remove.d.ts +28 -0
- package/src/commands/generated/enums/remove.js +70 -0
- package/src/commands/generated/enums/remove.js.map +1 -0
- package/src/commands/generated/exports/add.d.ts +29 -0
- package/src/commands/generated/exports/add.js +70 -0
- package/src/commands/generated/exports/add.js.map +1 -0
- package/src/commands/generated/exports/edit.d.ts +28 -0
- package/src/commands/generated/exports/edit.js +70 -0
- package/src/commands/generated/exports/edit.js.map +1 -0
- package/src/commands/generated/exports/get.d.ts +27 -0
- package/src/commands/generated/exports/get.js +70 -0
- package/src/commands/generated/exports/get.js.map +1 -0
- package/src/commands/generated/exports/remove.d.ts +28 -0
- package/src/commands/generated/exports/remove.js +70 -0
- package/src/commands/generated/exports/remove.js.map +1 -0
- package/src/commands/generated/functions/add.d.ts +29 -0
- package/src/commands/generated/functions/add.js +70 -0
- package/src/commands/generated/functions/add.js.map +1 -0
- package/src/commands/generated/functions/edit.d.ts +28 -0
- package/src/commands/generated/functions/edit.js +70 -0
- package/src/commands/generated/functions/edit.js.map +1 -0
- package/src/commands/generated/functions/get.d.ts +27 -0
- package/src/commands/generated/functions/get.js +70 -0
- package/src/commands/generated/functions/get.js.map +1 -0
- package/src/commands/generated/functions/remove.d.ts +28 -0
- package/src/commands/generated/functions/remove.js +70 -0
- package/src/commands/generated/functions/remove.js.map +1 -0
- package/src/commands/generated/import-refs/get.d.ts +28 -0
- package/src/commands/generated/import-refs/get.js +70 -0
- package/src/commands/generated/import-refs/get.js.map +1 -0
- package/src/commands/generated/imports/add.d.ts +29 -0
- package/src/commands/generated/imports/add.js +70 -0
- package/src/commands/generated/imports/add.js.map +1 -0
- package/src/commands/generated/imports/edit.d.ts +28 -0
- package/src/commands/generated/imports/edit.js +70 -0
- package/src/commands/generated/imports/edit.js.map +1 -0
- package/src/commands/generated/imports/get.d.ts +27 -0
- package/src/commands/generated/imports/get.js +70 -0
- package/src/commands/generated/imports/get.js.map +1 -0
- package/src/commands/generated/imports/remove.d.ts +28 -0
- package/src/commands/generated/imports/remove.js +70 -0
- package/src/commands/generated/imports/remove.js.map +1 -0
- package/src/commands/generated/index.d.ts +2 -0
- package/src/commands/generated/index.js +106 -0
- package/src/commands/generated/index.js.map +1 -0
- package/src/commands/generated/interfaces/add.d.ts +29 -0
- package/src/commands/generated/interfaces/add.js +70 -0
- package/src/commands/generated/interfaces/add.js.map +1 -0
- package/src/commands/generated/interfaces/edit.d.ts +28 -0
- package/src/commands/generated/interfaces/edit.js +70 -0
- package/src/commands/generated/interfaces/edit.js.map +1 -0
- package/src/commands/generated/interfaces/get.d.ts +27 -0
- package/src/commands/generated/interfaces/get.js +70 -0
- package/src/commands/generated/interfaces/get.js.map +1 -0
- package/src/commands/generated/interfaces/remove.d.ts +28 -0
- package/src/commands/generated/interfaces/remove.js +70 -0
- package/src/commands/generated/interfaces/remove.js.map +1 -0
- package/src/commands/generated/methods/add.d.ts +28 -0
- package/src/commands/generated/methods/add.js +70 -0
- package/src/commands/generated/methods/add.js.map +1 -0
- package/src/commands/generated/methods/edit.d.ts +28 -0
- package/src/commands/generated/methods/edit.js +70 -0
- package/src/commands/generated/methods/edit.js.map +1 -0
- package/src/commands/generated/methods/get.d.ts +28 -0
- package/src/commands/generated/methods/get.js +70 -0
- package/src/commands/generated/methods/get.js.map +1 -0
- package/src/commands/generated/methods/remove.d.ts +28 -0
- package/src/commands/generated/methods/remove.js +70 -0
- package/src/commands/generated/methods/remove.js.map +1 -0
- package/src/commands/generated/named-imports/get.d.ts +28 -0
- package/src/commands/generated/named-imports/get.js +70 -0
- package/src/commands/generated/named-imports/get.js.map +1 -0
- package/src/commands/generated/object-accessors/get.d.ts +28 -0
- package/src/commands/generated/object-accessors/get.js +70 -0
- package/src/commands/generated/object-accessors/get.js.map +1 -0
- package/src/commands/generated/object-methods/get.d.ts +28 -0
- package/src/commands/generated/object-methods/get.js +70 -0
- package/src/commands/generated/object-methods/get.js.map +1 -0
- package/src/commands/generated/object-properties/edit.d.ts +28 -0
- package/src/commands/generated/object-properties/edit.js +70 -0
- package/src/commands/generated/object-properties/edit.js.map +1 -0
- package/src/commands/generated/object-properties/get.d.ts +27 -0
- package/src/commands/generated/object-properties/get.js +70 -0
- package/src/commands/generated/object-properties/get.js.map +1 -0
- package/src/commands/generated/object-properties/remove.d.ts +28 -0
- package/src/commands/generated/object-properties/remove.js +70 -0
- package/src/commands/generated/object-properties/remove.js.map +1 -0
- package/src/commands/generated/object-property/add.d.ts +28 -0
- package/src/commands/generated/object-property/add.js +70 -0
- package/src/commands/generated/object-property/add.js.map +1 -0
- package/src/commands/generated/params/add.d.ts +28 -0
- package/src/commands/generated/params/add.js +70 -0
- package/src/commands/generated/params/add.js.map +1 -0
- package/src/commands/generated/params/edit.d.ts +28 -0
- package/src/commands/generated/params/edit.js +70 -0
- package/src/commands/generated/params/edit.js.map +1 -0
- package/src/commands/generated/params/get.d.ts +28 -0
- package/src/commands/generated/params/get.js +70 -0
- package/src/commands/generated/params/get.js.map +1 -0
- package/src/commands/generated/params/remove.d.ts +28 -0
- package/src/commands/generated/params/remove.js +70 -0
- package/src/commands/generated/params/remove.js.map +1 -0
- package/src/commands/generated/source-file/get.d.ts +29 -0
- package/src/commands/generated/source-file/get.js +70 -0
- package/src/commands/generated/source-file/get.js.map +1 -0
- package/src/commands/generated/source-files/add.d.ts +29 -0
- package/src/commands/generated/source-files/add.js +70 -0
- package/src/commands/generated/source-files/add.js.map +1 -0
- package/src/commands/generated/source-files/get.d.ts +29 -0
- package/src/commands/generated/source-files/get.js +70 -0
- package/src/commands/generated/source-files/get.js.map +1 -0
- package/src/commands/generated/variables/add.d.ts +29 -0
- package/src/commands/generated/variables/add.js +70 -0
- package/src/commands/generated/variables/add.js.map +1 -0
- package/src/commands/generated/variables/edit.d.ts +28 -0
- package/src/commands/generated/variables/edit.js +70 -0
- package/src/commands/generated/variables/edit.js.map +1 -0
- package/src/commands/generated/variables/get.d.ts +27 -0
- package/src/commands/generated/variables/get.js +70 -0
- package/src/commands/generated/variables/get.js.map +1 -0
- package/src/commands/generated/variables/remove.d.ts +28 -0
- package/src/commands/generated/variables/remove.js +70 -0
- package/src/commands/generated/variables/remove.js.map +1 -0
- package/src/daemon/dispatcher.d.ts +34 -0
- package/src/daemon/dispatcher.js +122 -0
- package/src/daemon/dispatcher.js.map +1 -0
- package/src/daemon/entry.d.ts +39 -0
- package/src/daemon/entry.js +153 -0
- package/src/daemon/entry.js.map +1 -0
- package/src/daemon/handlers/diff.d.ts +7 -0
- package/src/daemon/handlers/diff.js +42 -0
- package/src/daemon/handlers/diff.js.map +1 -0
- package/src/daemon/handlers/find.d.ts +7 -0
- package/src/daemon/handlers/find.js +73 -0
- package/src/daemon/handlers/find.js.map +1 -0
- package/src/daemon/handlers/generated/_runtime.d.ts +23 -0
- package/src/daemon/handlers/generated/_runtime.js +87 -0
- package/src/daemon/handlers/generated/_runtime.js.map +1 -0
- package/src/daemon/handlers/generated/accessors/add.d.ts +2 -0
- package/src/daemon/handlers/generated/accessors/add.js +22 -0
- package/src/daemon/handlers/generated/accessors/add.js.map +1 -0
- package/src/daemon/handlers/generated/accessors/edit.d.ts +2 -0
- package/src/daemon/handlers/generated/accessors/edit.js +24 -0
- package/src/daemon/handlers/generated/accessors/edit.js.map +1 -0
- package/src/daemon/handlers/generated/accessors/get.d.ts +2 -0
- package/src/daemon/handlers/generated/accessors/get.js +22 -0
- package/src/daemon/handlers/generated/accessors/get.js.map +1 -0
- package/src/daemon/handlers/generated/accessors/remove.d.ts +2 -0
- package/src/daemon/handlers/generated/accessors/remove.js +22 -0
- package/src/daemon/handlers/generated/accessors/remove.js.map +1 -0
- package/src/daemon/handlers/generated/all-decorators/get.d.ts +2 -0
- package/src/daemon/handlers/generated/all-decorators/get.js +22 -0
- package/src/daemon/handlers/generated/all-decorators/get.js.map +1 -0
- package/src/daemon/handlers/generated/class-accessors/get.d.ts +2 -0
- package/src/daemon/handlers/generated/class-accessors/get.js +22 -0
- package/src/daemon/handlers/generated/class-accessors/get.js.map +1 -0
- package/src/daemon/handlers/generated/class-methods/get.d.ts +2 -0
- package/src/daemon/handlers/generated/class-methods/get.js +22 -0
- package/src/daemon/handlers/generated/class-methods/get.js.map +1 -0
- package/src/daemon/handlers/generated/class-properties/add.d.ts +2 -0
- package/src/daemon/handlers/generated/class-properties/add.js +22 -0
- package/src/daemon/handlers/generated/class-properties/add.js.map +1 -0
- package/src/daemon/handlers/generated/class-properties/edit.d.ts +2 -0
- package/src/daemon/handlers/generated/class-properties/edit.js +24 -0
- package/src/daemon/handlers/generated/class-properties/edit.js.map +1 -0
- package/src/daemon/handlers/generated/class-properties/get.d.ts +2 -0
- package/src/daemon/handlers/generated/class-properties/get.js +22 -0
- package/src/daemon/handlers/generated/class-properties/get.js.map +1 -0
- package/src/daemon/handlers/generated/class-properties/remove.d.ts +2 -0
- package/src/daemon/handlers/generated/class-properties/remove.js +22 -0
- package/src/daemon/handlers/generated/class-properties/remove.js.map +1 -0
- package/src/daemon/handlers/generated/classes/add.d.ts +2 -0
- package/src/daemon/handlers/generated/classes/add.js +24 -0
- package/src/daemon/handlers/generated/classes/add.js.map +1 -0
- package/src/daemon/handlers/generated/classes/edit.d.ts +2 -0
- package/src/daemon/handlers/generated/classes/edit.js +24 -0
- package/src/daemon/handlers/generated/classes/edit.js.map +1 -0
- package/src/daemon/handlers/generated/classes/get.d.ts +2 -0
- package/src/daemon/handlers/generated/classes/get.js +22 -0
- package/src/daemon/handlers/generated/classes/get.js.map +1 -0
- package/src/daemon/handlers/generated/classes/remove.d.ts +2 -0
- package/src/daemon/handlers/generated/classes/remove.js +22 -0
- package/src/daemon/handlers/generated/classes/remove.js.map +1 -0
- package/src/daemon/handlers/generated/constructors/add.d.ts +2 -0
- package/src/daemon/handlers/generated/constructors/add.js +22 -0
- package/src/daemon/handlers/generated/constructors/add.js.map +1 -0
- package/src/daemon/handlers/generated/constructors/edit.d.ts +2 -0
- package/src/daemon/handlers/generated/constructors/edit.js +24 -0
- package/src/daemon/handlers/generated/constructors/edit.js.map +1 -0
- package/src/daemon/handlers/generated/constructors/get.d.ts +2 -0
- package/src/daemon/handlers/generated/constructors/get.js +22 -0
- package/src/daemon/handlers/generated/constructors/get.js.map +1 -0
- package/src/daemon/handlers/generated/constructors/remove.d.ts +2 -0
- package/src/daemon/handlers/generated/constructors/remove.js +22 -0
- package/src/daemon/handlers/generated/constructors/remove.js.map +1 -0
- package/src/daemon/handlers/generated/decorators/add.d.ts +2 -0
- package/src/daemon/handlers/generated/decorators/add.js +22 -0
- package/src/daemon/handlers/generated/decorators/add.js.map +1 -0
- package/src/daemon/handlers/generated/decorators/edit.d.ts +2 -0
- package/src/daemon/handlers/generated/decorators/edit.js +24 -0
- package/src/daemon/handlers/generated/decorators/edit.js.map +1 -0
- package/src/daemon/handlers/generated/decorators/get.d.ts +2 -0
- package/src/daemon/handlers/generated/decorators/get.js +22 -0
- package/src/daemon/handlers/generated/decorators/get.js.map +1 -0
- package/src/daemon/handlers/generated/decorators/remove.d.ts +2 -0
- package/src/daemon/handlers/generated/decorators/remove.js +22 -0
- package/src/daemon/handlers/generated/decorators/remove.js.map +1 -0
- package/src/daemon/handlers/generated/enums/add.d.ts +2 -0
- package/src/daemon/handlers/generated/enums/add.js +24 -0
- package/src/daemon/handlers/generated/enums/add.js.map +1 -0
- package/src/daemon/handlers/generated/enums/edit.d.ts +2 -0
- package/src/daemon/handlers/generated/enums/edit.js +24 -0
- package/src/daemon/handlers/generated/enums/edit.js.map +1 -0
- package/src/daemon/handlers/generated/enums/get.d.ts +2 -0
- package/src/daemon/handlers/generated/enums/get.js +22 -0
- package/src/daemon/handlers/generated/enums/get.js.map +1 -0
- package/src/daemon/handlers/generated/enums/remove.d.ts +2 -0
- package/src/daemon/handlers/generated/enums/remove.js +22 -0
- package/src/daemon/handlers/generated/enums/remove.js.map +1 -0
- package/src/daemon/handlers/generated/exports/add.d.ts +2 -0
- package/src/daemon/handlers/generated/exports/add.js +24 -0
- package/src/daemon/handlers/generated/exports/add.js.map +1 -0
- package/src/daemon/handlers/generated/exports/edit.d.ts +2 -0
- package/src/daemon/handlers/generated/exports/edit.js +24 -0
- package/src/daemon/handlers/generated/exports/edit.js.map +1 -0
- package/src/daemon/handlers/generated/exports/get.d.ts +2 -0
- package/src/daemon/handlers/generated/exports/get.js +22 -0
- package/src/daemon/handlers/generated/exports/get.js.map +1 -0
- package/src/daemon/handlers/generated/exports/remove.d.ts +2 -0
- package/src/daemon/handlers/generated/exports/remove.js +22 -0
- package/src/daemon/handlers/generated/exports/remove.js.map +1 -0
- package/src/daemon/handlers/generated/functions/add.d.ts +2 -0
- package/src/daemon/handlers/generated/functions/add.js +24 -0
- package/src/daemon/handlers/generated/functions/add.js.map +1 -0
- package/src/daemon/handlers/generated/functions/edit.d.ts +2 -0
- package/src/daemon/handlers/generated/functions/edit.js +24 -0
- package/src/daemon/handlers/generated/functions/edit.js.map +1 -0
- package/src/daemon/handlers/generated/functions/get.d.ts +2 -0
- package/src/daemon/handlers/generated/functions/get.js +22 -0
- package/src/daemon/handlers/generated/functions/get.js.map +1 -0
- package/src/daemon/handlers/generated/functions/remove.d.ts +2 -0
- package/src/daemon/handlers/generated/functions/remove.js +22 -0
- package/src/daemon/handlers/generated/functions/remove.js.map +1 -0
- package/src/daemon/handlers/generated/import-refs/get.d.ts +2 -0
- package/src/daemon/handlers/generated/import-refs/get.js +22 -0
- package/src/daemon/handlers/generated/import-refs/get.js.map +1 -0
- package/src/daemon/handlers/generated/imports/add.d.ts +2 -0
- package/src/daemon/handlers/generated/imports/add.js +24 -0
- package/src/daemon/handlers/generated/imports/add.js.map +1 -0
- package/src/daemon/handlers/generated/imports/edit.d.ts +2 -0
- package/src/daemon/handlers/generated/imports/edit.js +24 -0
- package/src/daemon/handlers/generated/imports/edit.js.map +1 -0
- package/src/daemon/handlers/generated/imports/get.d.ts +2 -0
- package/src/daemon/handlers/generated/imports/get.js +22 -0
- package/src/daemon/handlers/generated/imports/get.js.map +1 -0
- package/src/daemon/handlers/generated/imports/remove.d.ts +2 -0
- package/src/daemon/handlers/generated/imports/remove.js +22 -0
- package/src/daemon/handlers/generated/imports/remove.js.map +1 -0
- package/src/daemon/handlers/generated/index.d.ts +2 -0
- package/src/daemon/handlers/generated/index.js +138 -0
- package/src/daemon/handlers/generated/index.js.map +1 -0
- package/src/daemon/handlers/generated/interfaces/add.d.ts +2 -0
- package/src/daemon/handlers/generated/interfaces/add.js +24 -0
- package/src/daemon/handlers/generated/interfaces/add.js.map +1 -0
- package/src/daemon/handlers/generated/interfaces/edit.d.ts +2 -0
- package/src/daemon/handlers/generated/interfaces/edit.js +24 -0
- package/src/daemon/handlers/generated/interfaces/edit.js.map +1 -0
- package/src/daemon/handlers/generated/interfaces/get.d.ts +2 -0
- package/src/daemon/handlers/generated/interfaces/get.js +22 -0
- package/src/daemon/handlers/generated/interfaces/get.js.map +1 -0
- package/src/daemon/handlers/generated/interfaces/remove.d.ts +2 -0
- package/src/daemon/handlers/generated/interfaces/remove.js +22 -0
- package/src/daemon/handlers/generated/interfaces/remove.js.map +1 -0
- package/src/daemon/handlers/generated/methods/add.d.ts +2 -0
- package/src/daemon/handlers/generated/methods/add.js +22 -0
- package/src/daemon/handlers/generated/methods/add.js.map +1 -0
- package/src/daemon/handlers/generated/methods/edit.d.ts +2 -0
- package/src/daemon/handlers/generated/methods/edit.js +24 -0
- package/src/daemon/handlers/generated/methods/edit.js.map +1 -0
- package/src/daemon/handlers/generated/methods/get.d.ts +2 -0
- package/src/daemon/handlers/generated/methods/get.js +22 -0
- package/src/daemon/handlers/generated/methods/get.js.map +1 -0
- package/src/daemon/handlers/generated/methods/remove.d.ts +2 -0
- package/src/daemon/handlers/generated/methods/remove.js +22 -0
- package/src/daemon/handlers/generated/methods/remove.js.map +1 -0
- package/src/daemon/handlers/generated/named-imports/get.d.ts +2 -0
- package/src/daemon/handlers/generated/named-imports/get.js +22 -0
- package/src/daemon/handlers/generated/named-imports/get.js.map +1 -0
- package/src/daemon/handlers/generated/object-accessors/get.d.ts +2 -0
- package/src/daemon/handlers/generated/object-accessors/get.js +22 -0
- package/src/daemon/handlers/generated/object-accessors/get.js.map +1 -0
- package/src/daemon/handlers/generated/object-methods/get.d.ts +2 -0
- package/src/daemon/handlers/generated/object-methods/get.js +22 -0
- package/src/daemon/handlers/generated/object-methods/get.js.map +1 -0
- package/src/daemon/handlers/generated/object-properties/edit.d.ts +2 -0
- package/src/daemon/handlers/generated/object-properties/edit.js +24 -0
- package/src/daemon/handlers/generated/object-properties/edit.js.map +1 -0
- package/src/daemon/handlers/generated/object-properties/get.d.ts +2 -0
- package/src/daemon/handlers/generated/object-properties/get.js +22 -0
- package/src/daemon/handlers/generated/object-properties/get.js.map +1 -0
- package/src/daemon/handlers/generated/object-properties/remove.d.ts +2 -0
- package/src/daemon/handlers/generated/object-properties/remove.js +22 -0
- package/src/daemon/handlers/generated/object-properties/remove.js.map +1 -0
- package/src/daemon/handlers/generated/object-property/add.d.ts +2 -0
- package/src/daemon/handlers/generated/object-property/add.js +22 -0
- package/src/daemon/handlers/generated/object-property/add.js.map +1 -0
- package/src/daemon/handlers/generated/params/add.d.ts +2 -0
- package/src/daemon/handlers/generated/params/add.js +22 -0
- package/src/daemon/handlers/generated/params/add.js.map +1 -0
- package/src/daemon/handlers/generated/params/edit.d.ts +2 -0
- package/src/daemon/handlers/generated/params/edit.js +24 -0
- package/src/daemon/handlers/generated/params/edit.js.map +1 -0
- package/src/daemon/handlers/generated/params/get.d.ts +2 -0
- package/src/daemon/handlers/generated/params/get.js +22 -0
- package/src/daemon/handlers/generated/params/get.js.map +1 -0
- package/src/daemon/handlers/generated/params/remove.d.ts +2 -0
- package/src/daemon/handlers/generated/params/remove.js +22 -0
- package/src/daemon/handlers/generated/params/remove.js.map +1 -0
- package/src/daemon/handlers/generated/source-file/get.d.ts +2 -0
- package/src/daemon/handlers/generated/source-file/get.js +24 -0
- package/src/daemon/handlers/generated/source-file/get.js.map +1 -0
- package/src/daemon/handlers/generated/source-files/add.d.ts +2 -0
- package/src/daemon/handlers/generated/source-files/add.js +24 -0
- package/src/daemon/handlers/generated/source-files/add.js.map +1 -0
- package/src/daemon/handlers/generated/source-files/get.d.ts +2 -0
- package/src/daemon/handlers/generated/source-files/get.js +24 -0
- package/src/daemon/handlers/generated/source-files/get.js.map +1 -0
- package/src/daemon/handlers/generated/variables/add.d.ts +2 -0
- package/src/daemon/handlers/generated/variables/add.js +24 -0
- package/src/daemon/handlers/generated/variables/add.js.map +1 -0
- package/src/daemon/handlers/generated/variables/edit.d.ts +2 -0
- package/src/daemon/handlers/generated/variables/edit.js +24 -0
- package/src/daemon/handlers/generated/variables/edit.js.map +1 -0
- package/src/daemon/handlers/generated/variables/get.d.ts +2 -0
- package/src/daemon/handlers/generated/variables/get.js +22 -0
- package/src/daemon/handlers/generated/variables/get.js.map +1 -0
- package/src/daemon/handlers/generated/variables/remove.d.ts +2 -0
- package/src/daemon/handlers/generated/variables/remove.js +22 -0
- package/src/daemon/handlers/generated/variables/remove.js.map +1 -0
- package/src/daemon/handlers/list-files.d.ts +7 -0
- package/src/daemon/handlers/list-files.js +66 -0
- package/src/daemon/handlers/list-files.js.map +1 -0
- package/src/daemon/handlers/op.d.ts +14 -0
- package/src/daemon/handlers/op.js +71 -0
- package/src/daemon/handlers/op.js.map +1 -0
- package/src/daemon/handlers/reload.d.ts +10 -0
- package/src/daemon/handlers/reload.js +46 -0
- package/src/daemon/handlers/reload.js.map +1 -0
- package/src/daemon/handlers/save.d.ts +14 -0
- package/src/daemon/handlers/save.js +67 -0
- package/src/daemon/handlers/save.js.map +1 -0
- package/src/daemon/handlers/snapshot.d.ts +10 -0
- package/src/daemon/handlers/snapshot.js +35 -0
- package/src/daemon/handlers/snapshot.js.map +1 -0
- package/src/daemon/session-manager.d.ts +37 -0
- package/src/daemon/session-manager.js +70 -0
- package/src/daemon/session-manager.js.map +1 -0
- package/src/discovery/lockfile.d.ts +47 -0
- package/src/discovery/lockfile.js +181 -0
- package/src/discovery/lockfile.js.map +1 -0
- package/src/generated/op-schemas.d.ts +8 -0
- package/src/generated/op-schemas.js +3213 -0
- package/src/generated/op-schemas.js.map +1 -0
- package/src/generated/skills.d.ts +9 -0
- package/src/generated/skills.js +11 -0
- package/src/generated/skills.js.map +1 -0
- package/src/index.d.ts +1 -0
- package/src/index.js +3 -0
- package/src/index.js.map +1 -0
- package/src/proto/error-codes.d.ts +26 -0
- package/src/proto/error-codes.js +55 -0
- package/src/proto/error-codes.js.map +1 -0
- package/src/proto/jsonrpc.d.ts +57 -0
- package/src/proto/jsonrpc.js +87 -0
- package/src/proto/jsonrpc.js.map +1 -0
- package/src/session/file-stat-cache.d.ts +43 -0
- package/src/session/file-stat-cache.js +95 -0
- package/src/session/file-stat-cache.js.map +1 -0
- package/src/session/ref-table.d.ts +42 -0
- package/src/session/ref-table.js +98 -0
- package/src/session/ref-table.js.map +1 -0
- package/src/session/session.d.ts +51 -0
- package/src/session/session.js +109 -0
- package/src/session/session.js.map +1 -0
- package/src/session/snapshot.d.ts +26 -0
- package/src/session/snapshot.js +164 -0
- package/src/session/snapshot.js.map +1 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RefTable = void 0;
|
|
4
|
+
const error_codes_1 = require("../proto/error-codes");
|
|
5
|
+
const jsonrpc_1 = require("../proto/jsonrpc");
|
|
6
|
+
/**
|
|
7
|
+
* Mints opaque `@nN` refs that resolve back to live ts-morph nodes.
|
|
8
|
+
*
|
|
9
|
+
* Each file owns its own monotonic id counter (`nextId`) and its own
|
|
10
|
+
* monotonic `generation` counter. Mutating a file (`invalidateFile`)
|
|
11
|
+
* bumps the generation; any ref minted at an older generation resolves
|
|
12
|
+
* as STALE.
|
|
13
|
+
*
|
|
14
|
+
* Per-process; refs are not portable across sessions.
|
|
15
|
+
*/
|
|
16
|
+
class RefTable {
|
|
17
|
+
records = new Map();
|
|
18
|
+
fileState = new Map();
|
|
19
|
+
/**
|
|
20
|
+
* Mint a fresh `@nN` ref for `node`. The id is sequential within
|
|
21
|
+
* `file` and is reset by {@link resetFile}.
|
|
22
|
+
*/
|
|
23
|
+
mint(node, file) {
|
|
24
|
+
const state = this.ensureFile(file);
|
|
25
|
+
const id = state.nextId++;
|
|
26
|
+
const ref = `@n${id}`;
|
|
27
|
+
this.records.set(ref, {
|
|
28
|
+
weak: new WeakRef(node),
|
|
29
|
+
file,
|
|
30
|
+
generation: state.generation,
|
|
31
|
+
kind: node.getKindName(),
|
|
32
|
+
});
|
|
33
|
+
return ref;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Resolve `ref` back to its live node and originating file. Throws
|
|
37
|
+
* `RpcError(StaleRef)` if the ref is unknown, points into an
|
|
38
|
+
* invalidated generation, or the underlying node was forgotten.
|
|
39
|
+
*/
|
|
40
|
+
resolve(ref) {
|
|
41
|
+
const record = this.records.get(ref);
|
|
42
|
+
if (!record) {
|
|
43
|
+
throw new jsonrpc_1.RpcError(error_codes_1.ErrorCode.StaleRef, `ref ${ref} is unknown`, { ref });
|
|
44
|
+
}
|
|
45
|
+
const state = this.fileState.get(record.file);
|
|
46
|
+
if (!state || state.generation !== record.generation) {
|
|
47
|
+
throw new jsonrpc_1.RpcError(error_codes_1.ErrorCode.StaleRef, `ref ${ref} is stale; re-snapshot ${record.file}`, {
|
|
48
|
+
ref,
|
|
49
|
+
file: record.file,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
const node = record.weak.deref();
|
|
53
|
+
if (!node || node.wasForgotten()) {
|
|
54
|
+
throw new jsonrpc_1.RpcError(error_codes_1.ErrorCode.StaleRef, `ref ${ref} is stale; re-snapshot ${record.file}`, {
|
|
55
|
+
ref,
|
|
56
|
+
file: record.file,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
return { node, file: record.file };
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Bump the generation for `file`. Every previously minted ref pointing
|
|
63
|
+
* into this file will now fail `resolve` with `StaleRef`. Used after
|
|
64
|
+
* any mutation that may shift node identity.
|
|
65
|
+
*/
|
|
66
|
+
invalidateFile(file) {
|
|
67
|
+
const state = this.fileState.get(file);
|
|
68
|
+
if (state)
|
|
69
|
+
state.generation += 1;
|
|
70
|
+
else
|
|
71
|
+
this.fileState.set(file, { generation: 1, nextId: 1 });
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Reset the id counter and generation for `file` so the next mint
|
|
75
|
+
* starts at `@n1`. Called by the snapshot renderer at the start of a
|
|
76
|
+
* fresh top-level walk.
|
|
77
|
+
*/
|
|
78
|
+
resetFile(file) {
|
|
79
|
+
const state = this.fileState.get(file);
|
|
80
|
+
if (state) {
|
|
81
|
+
state.generation += 1;
|
|
82
|
+
state.nextId = 1;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
this.fileState.set(file, { generation: 1, nextId: 1 });
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
ensureFile(file) {
|
|
89
|
+
let state = this.fileState.get(file);
|
|
90
|
+
if (!state) {
|
|
91
|
+
state = { generation: 1, nextId: 1 };
|
|
92
|
+
this.fileState.set(file, state);
|
|
93
|
+
}
|
|
94
|
+
return state;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
exports.RefTable = RefTable;
|
|
98
|
+
//# sourceMappingURL=ref-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ref-table.js","sourceRoot":"","sources":["../../../../../packages/cli/src/session/ref-table.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Project, type SourceFile } from '@mutates/core';
|
|
2
|
+
import { FileStatCache } from './file-stat-cache';
|
|
3
|
+
import { RefTable } from './ref-table';
|
|
4
|
+
export interface SessionOptions {
|
|
5
|
+
/** Absolute or relative project root. */
|
|
6
|
+
root: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* A live ts-morph project plus the bookkeeping required to mint refs,
|
|
10
|
+
* detect external file changes, and bridge `@mutates/core`'s
|
|
11
|
+
* singleton-style `getActiveProject()` API.
|
|
12
|
+
*
|
|
13
|
+
* The daemon process owns at most one Session at a time (one project
|
|
14
|
+
* root per daemon — Req 10.1).
|
|
15
|
+
*/
|
|
16
|
+
export declare class Session {
|
|
17
|
+
readonly id: string;
|
|
18
|
+
readonly root: string;
|
|
19
|
+
readonly openedAt: number;
|
|
20
|
+
readonly tsconfig: string | null;
|
|
21
|
+
readonly project: Project;
|
|
22
|
+
readonly refs: RefTable;
|
|
23
|
+
readonly stats: FileStatCache;
|
|
24
|
+
/** Snapshot of each source file's text at load / save time. */
|
|
25
|
+
private readonly textAtLoad;
|
|
26
|
+
constructor(opts: SessionOptions);
|
|
27
|
+
/**
|
|
28
|
+
* Record the initial fingerprint and text for a source file. Called
|
|
29
|
+
* during construction and any time the session adopts a new file.
|
|
30
|
+
*/
|
|
31
|
+
recordLoaded(sourceFile: SourceFile): void;
|
|
32
|
+
/**
|
|
33
|
+
* Re-baseline a source file after a successful save: capture the new
|
|
34
|
+
* text + fingerprint so subsequent dirty checks compare against the
|
|
35
|
+
* latest "clean" state.
|
|
36
|
+
*/
|
|
37
|
+
rebaseline(sourceFile: SourceFile, fp: {
|
|
38
|
+
mtimeMs: number;
|
|
39
|
+
size: number;
|
|
40
|
+
}): void;
|
|
41
|
+
/**
|
|
42
|
+
* Bridge `@mutates/core`'s singleton: install this session's project
|
|
43
|
+
* as the active one, run `fn`, restore the previous active project.
|
|
44
|
+
*/
|
|
45
|
+
withActiveProject<T>(fn: () => T): T;
|
|
46
|
+
/**
|
|
47
|
+
* Absolute paths of every source file whose in-memory text differs
|
|
48
|
+
* from the text captured at load (or last save).
|
|
49
|
+
*/
|
|
50
|
+
dirtyFiles(): string[];
|
|
51
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Session = void 0;
|
|
4
|
+
const node_crypto_1 = require("node:crypto");
|
|
5
|
+
const node_fs_1 = require("node:fs");
|
|
6
|
+
const node_path_1 = require("node:path");
|
|
7
|
+
const core_1 = require("@mutates/core");
|
|
8
|
+
const file_stat_cache_1 = require("./file-stat-cache");
|
|
9
|
+
const ref_table_1 = require("./ref-table");
|
|
10
|
+
/**
|
|
11
|
+
* A live ts-morph project plus the bookkeeping required to mint refs,
|
|
12
|
+
* detect external file changes, and bridge `@mutates/core`'s
|
|
13
|
+
* singleton-style `getActiveProject()` API.
|
|
14
|
+
*
|
|
15
|
+
* The daemon process owns at most one Session at a time (one project
|
|
16
|
+
* root per daemon — Req 10.1).
|
|
17
|
+
*/
|
|
18
|
+
class Session {
|
|
19
|
+
id;
|
|
20
|
+
root;
|
|
21
|
+
openedAt;
|
|
22
|
+
tsconfig;
|
|
23
|
+
project;
|
|
24
|
+
refs;
|
|
25
|
+
stats;
|
|
26
|
+
/** Snapshot of each source file's text at load / save time. */
|
|
27
|
+
textAtLoad = new Map();
|
|
28
|
+
constructor(opts) {
|
|
29
|
+
this.id = (0, node_crypto_1.randomUUID)();
|
|
30
|
+
this.root = (0, node_path_1.resolve)(opts.root);
|
|
31
|
+
this.openedAt = Date.now();
|
|
32
|
+
const tsconfigCandidate = (0, node_path_1.join)(this.root, 'tsconfig.json');
|
|
33
|
+
this.tsconfig = (0, node_fs_1.existsSync)(tsconfigCandidate) ? tsconfigCandidate : null;
|
|
34
|
+
this.project = this.tsconfig ? new core_1.Project({ tsConfigFilePath: this.tsconfig }) : new core_1.Project();
|
|
35
|
+
if (!this.tsconfig) {
|
|
36
|
+
// No tsconfig — lazily pick up any TS sources under root so a
|
|
37
|
+
// bare-directory project still has source files to operate on.
|
|
38
|
+
this.project.addSourceFilesAtPaths((0, node_path_1.join)(this.root, '**/*.{ts,tsx}'));
|
|
39
|
+
}
|
|
40
|
+
this.refs = new ref_table_1.RefTable();
|
|
41
|
+
this.stats = new file_stat_cache_1.FileStatCache();
|
|
42
|
+
for (const sf of this.project.getSourceFiles()) {
|
|
43
|
+
this.recordLoaded(sf);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Record the initial fingerprint and text for a source file. Called
|
|
48
|
+
* during construction and any time the session adopts a new file.
|
|
49
|
+
*/
|
|
50
|
+
recordLoaded(sourceFile) {
|
|
51
|
+
const file = sourceFile.getFilePath();
|
|
52
|
+
this.textAtLoad.set(file, { text: sourceFile.getFullText() });
|
|
53
|
+
try {
|
|
54
|
+
const s = (0, node_fs_1.statSync)(file);
|
|
55
|
+
this.stats.record(file, { mtimeMs: s.mtimeMs, size: s.size });
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// In-memory or otherwise unstattable file — skip the fingerprint;
|
|
59
|
+
// verify will treat it as stale if save is attempted.
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Re-baseline a source file after a successful save: capture the new
|
|
64
|
+
* text + fingerprint so subsequent dirty checks compare against the
|
|
65
|
+
* latest "clean" state.
|
|
66
|
+
*/
|
|
67
|
+
rebaseline(sourceFile, fp) {
|
|
68
|
+
const file = sourceFile.getFilePath();
|
|
69
|
+
this.textAtLoad.set(file, { text: sourceFile.getFullText() });
|
|
70
|
+
this.stats.record(file, fp);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Bridge `@mutates/core`'s singleton: install this session's project
|
|
74
|
+
* as the active one, run `fn`, restore the previous active project.
|
|
75
|
+
*/
|
|
76
|
+
withActiveProject(fn) {
|
|
77
|
+
const prev = (0, core_1.setActiveProject)(this.project);
|
|
78
|
+
try {
|
|
79
|
+
return fn();
|
|
80
|
+
}
|
|
81
|
+
finally {
|
|
82
|
+
if (prev)
|
|
83
|
+
(0, core_1.setActiveProject)(prev);
|
|
84
|
+
else
|
|
85
|
+
(0, core_1.resetActiveProject)();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Absolute paths of every source file whose in-memory text differs
|
|
90
|
+
* from the text captured at load (or last save).
|
|
91
|
+
*/
|
|
92
|
+
dirtyFiles() {
|
|
93
|
+
const dirty = [];
|
|
94
|
+
for (const sf of this.project.getSourceFiles()) {
|
|
95
|
+
const file = sf.getFilePath();
|
|
96
|
+
const recorded = this.textAtLoad.get(file);
|
|
97
|
+
if (!recorded) {
|
|
98
|
+
// Newly added file — treat as dirty so save will pick it up.
|
|
99
|
+
dirty.push(file);
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
if (sf.getFullText() !== recorded.text)
|
|
103
|
+
dirty.push(file);
|
|
104
|
+
}
|
|
105
|
+
return dirty;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.Session = Session;
|
|
109
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../../packages/cli/src/session/session.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,qCAA+C;AAC/C,yCAAyD;AAEzD,wCAA+F;AAE/F,uDAAkD;AAClD,2CAAuC;AAWvC;;;;;;;GAOG;AACH,MAAa,OAAO;IACT,EAAE,CAAS;IACX,IAAI,CAAS;IACb,QAAQ,CAAS;IACjB,QAAQ,CAAgB;IACxB,OAAO,CAAU;IACjB,IAAI,CAAW;IACf,KAAK,CAAgB;IAE9B,+DAA+D;IAC9C,UAAU,GAAG,IAAI,GAAG,EAAwB,CAAC;IAE9D,YAAY,IAAoB;QAC9B,IAAI,CAAC,EAAE,GAAG,IAAA,wBAAU,GAAE,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE3B,MAAM,iBAAiB,GAAG,IAAA,gBAAI,EAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,IAAA,oBAAU,EAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;QAEzE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,cAAO,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,cAAO,EAAE,CAAC;QAEhG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,8DAA8D;YAC9D,+DAA+D;YAC/D,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAA,gBAAI,EAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,oBAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,+BAAa,EAAE,CAAC;QAEjC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,UAAsB;QACjC,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,IAAA,kBAAQ,EAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,kEAAkE;YAClE,sDAAsD;QACxD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,UAAsB,EAAE,EAAqC;QACtE,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAI,EAAW;QAC9B,MAAM,IAAI,GAAG,IAAA,uBAAgB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC;YACH,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,IAAI;gBAAE,IAAA,uBAAgB,EAAC,IAAI,CAAC,CAAC;;gBAC5B,IAAA,yBAAkB,GAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;YAC/C,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,6DAA6D;gBAC7D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjB,SAAS;YACX,CAAC;YACD,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AA/FD,0BA+FC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Session } from './session';
|
|
2
|
+
/** A single entry in a {@link SnapshotResult}. */
|
|
3
|
+
export interface SnapshotEntry {
|
|
4
|
+
ref: string;
|
|
5
|
+
/** Short lowercase kind (`"class"`, `"function"`, ...) — see {@link KIND_BY_SYNTAX}. */
|
|
6
|
+
kind: string;
|
|
7
|
+
name?: string;
|
|
8
|
+
modifiers?: string[];
|
|
9
|
+
/** Count of children available via drill, when applicable. */
|
|
10
|
+
children?: number;
|
|
11
|
+
}
|
|
12
|
+
export interface SnapshotResult {
|
|
13
|
+
file: string;
|
|
14
|
+
entries: SnapshotEntry[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Render the top-level structure of `file`. Resets the file's ref id
|
|
18
|
+
* counter so the first declaration is always `@n1`.
|
|
19
|
+
*/
|
|
20
|
+
export declare function snapshotFile(session: Session, file: string): SnapshotResult;
|
|
21
|
+
/**
|
|
22
|
+
* Drill into `parentRef`'s children. Members of classes/interfaces and
|
|
23
|
+
* statements of functions are surfaced as fresh entries (sharing the
|
|
24
|
+
* parent's file generation — drill does NOT reset the file).
|
|
25
|
+
*/
|
|
26
|
+
export declare function snapshotChildren(session: Session, parentRef: string): SnapshotResult;
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.snapshotFile = snapshotFile;
|
|
4
|
+
exports.snapshotChildren = snapshotChildren;
|
|
5
|
+
const core_1 = require("@mutates/core");
|
|
6
|
+
const error_codes_1 = require("../proto/error-codes");
|
|
7
|
+
const jsonrpc_1 = require("../proto/jsonrpc");
|
|
8
|
+
/**
|
|
9
|
+
* Map ts-morph `SyntaxKind` numeric values to the short lowercase kind
|
|
10
|
+
* label exposed in `SnapshotEntry.kind`. Anything not in this table
|
|
11
|
+
* falls back to the long SyntaxKind name (`node.getKindName()`).
|
|
12
|
+
*/
|
|
13
|
+
const KIND_BY_SYNTAX = {
|
|
14
|
+
[core_1.SyntaxKind.ImportDeclaration]: 'import',
|
|
15
|
+
[core_1.SyntaxKind.ClassDeclaration]: 'class',
|
|
16
|
+
[core_1.SyntaxKind.FunctionDeclaration]: 'function',
|
|
17
|
+
[core_1.SyntaxKind.VariableStatement]: 'variable',
|
|
18
|
+
[core_1.SyntaxKind.InterfaceDeclaration]: 'interface',
|
|
19
|
+
[core_1.SyntaxKind.EnumDeclaration]: 'enum',
|
|
20
|
+
[core_1.SyntaxKind.TypeAliasDeclaration]: 'type',
|
|
21
|
+
[core_1.SyntaxKind.ExportDeclaration]: 'export',
|
|
22
|
+
[core_1.SyntaxKind.ExportAssignment]: 'export',
|
|
23
|
+
[core_1.SyntaxKind.MethodDeclaration]: 'method',
|
|
24
|
+
[core_1.SyntaxKind.PropertyDeclaration]: 'property',
|
|
25
|
+
[core_1.SyntaxKind.GetAccessor]: 'getter',
|
|
26
|
+
[core_1.SyntaxKind.SetAccessor]: 'setter',
|
|
27
|
+
[core_1.SyntaxKind.Constructor]: 'constructor',
|
|
28
|
+
[core_1.SyntaxKind.PropertySignature]: 'property',
|
|
29
|
+
[core_1.SyntaxKind.MethodSignature]: 'method',
|
|
30
|
+
[core_1.SyntaxKind.IndexSignature]: 'index',
|
|
31
|
+
[core_1.SyntaxKind.CallSignature]: 'call',
|
|
32
|
+
[core_1.SyntaxKind.ConstructSignature]: 'construct',
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Render the top-level structure of `file`. Resets the file's ref id
|
|
36
|
+
* counter so the first declaration is always `@n1`.
|
|
37
|
+
*/
|
|
38
|
+
function snapshotFile(session, file) {
|
|
39
|
+
const sourceFile = session.project.getSourceFile(file);
|
|
40
|
+
if (!sourceFile) {
|
|
41
|
+
throw new jsonrpc_1.RpcError(error_codes_1.ErrorCode.NotFound, `file not found in session: ${file}`, { file });
|
|
42
|
+
}
|
|
43
|
+
const absFile = sourceFile.getFilePath();
|
|
44
|
+
session.refs.resetFile(absFile);
|
|
45
|
+
const entries = [];
|
|
46
|
+
for (const node of collectTopLevel(sourceFile)) {
|
|
47
|
+
entries.push(buildEntry(session, node, absFile));
|
|
48
|
+
}
|
|
49
|
+
return { file: absFile, entries };
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Drill into `parentRef`'s children. Members of classes/interfaces and
|
|
53
|
+
* statements of functions are surfaced as fresh entries (sharing the
|
|
54
|
+
* parent's file generation — drill does NOT reset the file).
|
|
55
|
+
*/
|
|
56
|
+
function snapshotChildren(session, parentRef) {
|
|
57
|
+
const { node, file } = session.refs.resolve(parentRef);
|
|
58
|
+
const entries = [];
|
|
59
|
+
for (const child of collectChildren(node)) {
|
|
60
|
+
entries.push(buildEntry(session, child, file));
|
|
61
|
+
}
|
|
62
|
+
return { file, entries };
|
|
63
|
+
}
|
|
64
|
+
function collectTopLevel(sourceFile) {
|
|
65
|
+
const wanted = new Set([
|
|
66
|
+
core_1.SyntaxKind.ImportDeclaration,
|
|
67
|
+
core_1.SyntaxKind.ClassDeclaration,
|
|
68
|
+
core_1.SyntaxKind.FunctionDeclaration,
|
|
69
|
+
core_1.SyntaxKind.VariableStatement,
|
|
70
|
+
core_1.SyntaxKind.InterfaceDeclaration,
|
|
71
|
+
core_1.SyntaxKind.EnumDeclaration,
|
|
72
|
+
core_1.SyntaxKind.TypeAliasDeclaration,
|
|
73
|
+
core_1.SyntaxKind.ExportDeclaration,
|
|
74
|
+
core_1.SyntaxKind.ExportAssignment,
|
|
75
|
+
]);
|
|
76
|
+
return sourceFile.getStatements().filter((s) => wanted.has(s.getKind()));
|
|
77
|
+
}
|
|
78
|
+
function collectChildren(node) {
|
|
79
|
+
if (core_1.Node.isClassDeclaration(node)) {
|
|
80
|
+
return node.getMembers();
|
|
81
|
+
}
|
|
82
|
+
if (core_1.Node.isInterfaceDeclaration(node)) {
|
|
83
|
+
return node.getMembers();
|
|
84
|
+
}
|
|
85
|
+
if (core_1.Node.isFunctionDeclaration(node)) {
|
|
86
|
+
const body = node.getBody();
|
|
87
|
+
if (body && core_1.Node.isBlock(body)) {
|
|
88
|
+
return body.getStatements();
|
|
89
|
+
}
|
|
90
|
+
return [];
|
|
91
|
+
}
|
|
92
|
+
return [];
|
|
93
|
+
}
|
|
94
|
+
function buildEntry(session, node, file) {
|
|
95
|
+
const ref = session.refs.mint(node, file);
|
|
96
|
+
const kind = shortKind(node);
|
|
97
|
+
const entry = { ref, kind };
|
|
98
|
+
const name = nameOf(node);
|
|
99
|
+
if (name)
|
|
100
|
+
entry.name = name;
|
|
101
|
+
const modifiers = modifiersOf(node);
|
|
102
|
+
if (modifiers.length > 0)
|
|
103
|
+
entry.modifiers = modifiers;
|
|
104
|
+
const children = childCount(node);
|
|
105
|
+
if (children > 0)
|
|
106
|
+
entry.children = children;
|
|
107
|
+
return entry;
|
|
108
|
+
}
|
|
109
|
+
function shortKind(node) {
|
|
110
|
+
return KIND_BY_SYNTAX[node.getKind()] ?? node.getKindName();
|
|
111
|
+
}
|
|
112
|
+
function nameOf(node) {
|
|
113
|
+
// `getName` may not exist for every node type; guard at runtime.
|
|
114
|
+
const candidate = node.getName;
|
|
115
|
+
if (typeof candidate === 'function') {
|
|
116
|
+
try {
|
|
117
|
+
const name = candidate.call(node);
|
|
118
|
+
if (typeof name === 'string' && name.length > 0)
|
|
119
|
+
return name;
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
// Unnamed declaration — fall through.
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
if (core_1.Node.isVariableStatement(node)) {
|
|
126
|
+
const first = node.getDeclarations()[0];
|
|
127
|
+
return first?.getName();
|
|
128
|
+
}
|
|
129
|
+
if (core_1.Node.isImportDeclaration(node)) {
|
|
130
|
+
return node.getModuleSpecifierValue();
|
|
131
|
+
}
|
|
132
|
+
if (core_1.Node.isExportDeclaration(node)) {
|
|
133
|
+
return node.getModuleSpecifierValue();
|
|
134
|
+
}
|
|
135
|
+
return undefined;
|
|
136
|
+
}
|
|
137
|
+
function modifiersOf(node) {
|
|
138
|
+
const mods = [];
|
|
139
|
+
const exportable = node;
|
|
140
|
+
if (typeof exportable.isExported === 'function' && exportable.isExported()) {
|
|
141
|
+
mods.push('exported');
|
|
142
|
+
}
|
|
143
|
+
if (typeof exportable.isDefaultExport === 'function' && exportable.isDefaultExport()) {
|
|
144
|
+
mods.push('default');
|
|
145
|
+
}
|
|
146
|
+
const asyncable = node;
|
|
147
|
+
if (typeof asyncable.isAsync === 'function' && asyncable.isAsync()) {
|
|
148
|
+
mods.push('async');
|
|
149
|
+
}
|
|
150
|
+
return mods;
|
|
151
|
+
}
|
|
152
|
+
function childCount(node) {
|
|
153
|
+
if (core_1.Node.isClassDeclaration(node))
|
|
154
|
+
return node.getMembers().length;
|
|
155
|
+
if (core_1.Node.isInterfaceDeclaration(node))
|
|
156
|
+
return node.getMembers().length;
|
|
157
|
+
if (core_1.Node.isFunctionDeclaration(node)) {
|
|
158
|
+
const body = node.getBody();
|
|
159
|
+
if (body && core_1.Node.isBlock(body))
|
|
160
|
+
return body.getStatements().length;
|
|
161
|
+
}
|
|
162
|
+
return 0;
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../../../packages/cli/src/session/snapshot.ts"],"names":[],"mappings":"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"}
|