akanjs 2.0.7 → 2.1.0-rc.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.ko.md +4 -4
- package/README.md +4 -4
- package/client/router.ts +10 -3
- package/document/documentSchema.ts +9 -1
- package/index.ts +187 -0
- package/package.json +6 -50
- package/server/akanApp.ts +2 -24
- package/server/akanAppHeaders.ts +30 -0
- package/server/di/predefinedAdaptor.ts +1 -1
- package/types/dictionary/base.dictionary.d.ts +1 -1
- package/types/dictionary/dictionary.d.ts +8 -8
- package/types/document/documentSchema.d.ts +33 -0
- package/types/document/index.d.ts +1 -1
- package/types/document/schema.d.ts +1 -1
- package/types/document/types.d.ts +1 -1
- package/types/{devkit/akanConfig/types.d.ts → index.d.ts} +45 -54
- package/types/server/akanAppHeaders.d.ts +1 -0
- package/types/server/di/predefinedAdaptor.d.ts +1 -1
- package/types/store/baseSt.d.ts +2 -2
- package/ui/Link/SsrLink.tsx +2 -2
- package/webkit/useCodepush.tsx +1 -1
- package/cli/application/application.command.ts +0 -224
- package/cli/application/application.interface.tsx +0 -225
- package/cli/application/application.runner.ts +0 -355
- package/cli/application/application.script.ts +0 -244
- package/cli/build.ts +0 -27
- package/cli/cloud/cloud.command.ts +0 -48
- package/cli/cloud/cloud.runner.ts +0 -157
- package/cli/cloud/cloud.script.ts +0 -40
- package/cli/guideline/guideline.command.ts +0 -31
- package/cli/guideline/guideline.prompt.ts +0 -212
- package/cli/guideline/guideline.runner.ts +0 -53
- package/cli/guideline/guideline.script.ts +0 -33
- package/cli/guidelines/___library/sharedUiStructureDescription.en.md +0 -767
- package/cli/guidelines/___library/utilUiStructureDescription.en.md +0 -395
- package/cli/guidelines/___lint/lintRuleDescription.en.md +0 -64
- package/cli/guidelines/___module/moduleStructureDescription.en.md +0 -80
- package/cli/guidelines/componentRule/componentRule.generate.json +0 -131
- package/cli/guidelines/componentRule/componentRule.instruction.md +0 -637
- package/cli/guidelines/cssRule/cssRule.generate.json +0 -93
- package/cli/guidelines/cssRule/cssRule.instruction.md +0 -435
- package/cli/guidelines/databaseModule/databaseModule.generate.json +0 -51
- package/cli/guidelines/databaseModule/databaseModule.instruction.md +0 -612
- package/cli/guidelines/docPageRule/docPageRule.generate.json +0 -72
- package/cli/guidelines/docPageRule/docPageRule.instruction.md +0 -389
- package/cli/guidelines/enumConstant/enumConstant.generate.json +0 -24
- package/cli/guidelines/enumConstant/enumConstant.instruction.md +0 -232
- package/cli/guidelines/framework/framework.generate.json +0 -119
- package/cli/guidelines/framework/framework.instruction.md +0 -1110
- package/cli/guidelines/howToUseStore/howToUseStore.generate.json +0 -0
- package/cli/guidelines/modelConstant/modelConstant.generate.json +0 -128
- package/cli/guidelines/modelConstant/modelConstant.instruction.md +0 -506
- package/cli/guidelines/modelDictionary/modelDictionary.generate.json +0 -108
- package/cli/guidelines/modelDictionary/modelDictionary.instruction.md +0 -547
- package/cli/guidelines/modelDocument/modelDocument.generate.json +0 -129
- package/cli/guidelines/modelDocument/modelDocument.instruction.md +0 -509
- package/cli/guidelines/modelService/modelService.generate.json +0 -135
- package/cli/guidelines/modelService/modelService.instruction.md +0 -708
- package/cli/guidelines/modelSignal/modelSignal.generate.json +0 -201
- package/cli/guidelines/modelSignal/modelSignal.instruction.md +0 -552
- package/cli/guidelines/modelStore/modelStore.generate.json +0 -130
- package/cli/guidelines/modelStore/modelStore.instruction.md +0 -585
- package/cli/guidelines/modelTemplate/modelTemplate.generate.json +0 -104
- package/cli/guidelines/modelTemplate/modelTemplate.instruction.md +0 -604
- package/cli/guidelines/modelUnit/modelUnit.generate.json +0 -92
- package/cli/guidelines/modelUnit/modelUnit.instruction.md +0 -541
- package/cli/guidelines/modelUtil/modelUtil.generate.json +0 -93
- package/cli/guidelines/modelUtil/modelUtil.instruction.md +0 -752
- package/cli/guidelines/modelView/modelView.generate.json +0 -80
- package/cli/guidelines/modelView/modelView.instruction.md +0 -1005
- package/cli/guidelines/modelZone/modelZone.generate.json +0 -126
- package/cli/guidelines/modelZone/modelZone.instruction.md +0 -528
- package/cli/guidelines/scalarConstant/scalarConstant.generate.json +0 -106
- package/cli/guidelines/scalarConstant/scalarConstant.instruction.md +0 -442
- package/cli/guidelines/scalarDictionary/scalarDictionary.generate.json +0 -83
- package/cli/guidelines/scalarDictionary/scalarDictionary.instruction.md +0 -273
- package/cli/guidelines/scalarModule/scalarModule.generate.json +0 -35
- package/cli/guidelines/scalarModule/scalarModule.instruction.md +0 -81
- package/cli/guidelines/sharedUiUsage/sharedUiUsage.generate.json +0 -108
- package/cli/guidelines/sharedUiUsage/sharedUiUsage.instruction.md +0 -310
- package/cli/guidelines/utilUiUsage/utilUiUsage.generate.json +0 -140
- package/cli/guidelines/utilUiUsage/utilUiUsage.instruction.md +0 -339
- package/cli/index.js +0 -184444
- package/cli/index.ts +0 -24
- package/cli/library/library.command.ts +0 -28
- package/cli/library/library.runner.ts +0 -66
- package/cli/library/library.script.ts +0 -39
- package/cli/module/module.command.ts +0 -35
- package/cli/module/module.prompt.ts +0 -18
- package/cli/module/module.request.ts +0 -319
- package/cli/module/module.runner.ts +0 -76
- package/cli/module/module.script.ts +0 -161
- package/cli/npmRegistry.ts +0 -13
- package/cli/openBrowser.ts +0 -15
- package/cli/package/package.command.ts +0 -32
- package/cli/package/package.runner.ts +0 -94
- package/cli/package/package.script.ts +0 -35
- package/cli/page/page.command.ts +0 -14
- package/cli/page/page.runner.ts +0 -14
- package/cli/page/page.script.ts +0 -12
- package/cli/pluralizeName.ts +0 -5
- package/cli/scalar/scalar.command.ts +0 -21
- package/cli/scalar/scalar.prompt.ts +0 -131
- package/cli/scalar/scalar.runner.ts +0 -38
- package/cli/scalar/scalar.script.ts +0 -16
- package/cli/semver.ts +0 -18
- package/cli/templates/__scalar/__model__/__model__.constant.ts +0 -15
- package/cli/templates/__scalar/__model__/__model__.dictionary.ts +0 -19
- package/cli/templates/__scalar/__model__/__model__.document.ts +0 -15
- package/cli/templates/app/akan.config.ts +0 -14
- package/cli/templates/app/env/env.client.debug.ts.template +0 -7
- package/cli/templates/app/env/env.client.develop.ts.template +0 -7
- package/cli/templates/app/env/env.client.local.ts.template +0 -7
- package/cli/templates/app/env/env.client.main.ts.template +0 -7
- package/cli/templates/app/env/env.client.testing.ts.template +0 -7
- package/cli/templates/app/env/env.client.ts +0 -21
- package/cli/templates/app/env/env.client.type.ts +0 -16
- package/cli/templates/app/env/env.server.debug.ts.template +0 -7
- package/cli/templates/app/env/env.server.develop.ts.template +0 -7
- package/cli/templates/app/env/env.server.local.ts.template +0 -7
- package/cli/templates/app/env/env.server.main.ts.template +0 -7
- package/cli/templates/app/env/env.server.testing.ts.template +0 -6
- package/cli/templates/app/env/env.server.ts +0 -20
- package/cli/templates/app/lib/___appName__/__appName__.dictionary.ts +0 -17
- package/cli/templates/app/lib/___appName__/__appName__.service.ts +0 -13
- package/cli/templates/app/lib/___appName__/__appName__.signal.ts +0 -17
- package/cli/templates/app/lib/___appName__/__appName__.store.ts +0 -15
- package/cli/templates/app/lib/option.ts +0 -17
- package/cli/templates/app/main.ts +0 -16
- package/cli/templates/app/package.json.template +0 -5
- package/cli/templates/app/page/_index.tsx +0 -296
- package/cli/templates/app/page/_layout.tsx +0 -31
- package/cli/templates/app/page/styles.css.template +0 -53
- package/cli/templates/app/public/favicon.ico +0 -0
- package/cli/templates/app/public/logo.png +0 -0
- package/cli/templates/app/tsconfig.json.template +0 -21
- package/cli/templates/client.ts +0 -46
- package/cli/templates/crudPages/[__model__Id]/edit/page.tsx +0 -47
- package/cli/templates/crudPages/[__model__Id]/page.tsx +0 -52
- package/cli/templates/crudPages/new/page.tsx +0 -42
- package/cli/templates/crudPages/page.tsx +0 -43
- package/cli/templates/crudSinglePage/page.tsx +0 -37
- package/cli/templates/env/_env.server.type.ts +0 -16
- package/cli/templates/facetIndex/index.ts +0 -32
- package/cli/templates/index.ts +0 -10
- package/cli/templates/lib/__lib/lib.constant.ts +0 -38
- package/cli/templates/lib/__lib/lib.dictionary.ts +0 -33
- package/cli/templates/lib/__lib/lib.document.ts +0 -35
- package/cli/templates/lib/__lib/lib.service.ts +0 -33
- package/cli/templates/lib/__lib/lib.signal.ts +0 -34
- package/cli/templates/lib/__lib/lib.store.ts +0 -33
- package/cli/templates/lib/cnst.ts +0 -29
- package/cli/templates/lib/db.ts +0 -32
- package/cli/templates/lib/dict.ts +0 -49
- package/cli/templates/lib/sig.ts +0 -60
- package/cli/templates/lib/srv.ts +0 -34
- package/cli/templates/lib/st.ts +0 -31
- package/cli/templates/lib/useClient.ts +0 -19
- package/cli/templates/lib/useServer.ts +0 -7
- package/cli/templates/libRoot/.gitignore.template +0 -16
- package/cli/templates/libRoot/akan.config.ts +0 -12
- package/cli/templates/libRoot/base/baseLogic.ts +0 -10
- package/cli/templates/libRoot/base/index.ts +0 -8
- package/cli/templates/libRoot/common/commonLogic.ts +0 -10
- package/cli/templates/libRoot/common/index.ts +0 -8
- package/cli/templates/libRoot/env/env.server.example.ts.template +0 -6
- package/cli/templates/libRoot/env/env.server.testing.ts.template +0 -6
- package/cli/templates/libRoot/lib/___libName__/__libName__.dictionary.ts +0 -15
- package/cli/templates/libRoot/lib/___libName__/__libName__.service.ts +0 -11
- package/cli/templates/libRoot/lib/___libName__/__libName__.store.ts +0 -13
- package/cli/templates/libRoot/lib/option.ts +0 -17
- package/cli/templates/libRoot/package.json.template +0 -5
- package/cli/templates/libRoot/srvkit/backendLogic.ts +0 -10
- package/cli/templates/libRoot/srvkit/index.ts +0 -8
- package/cli/templates/libRoot/tsconfig.json.template +0 -11
- package/cli/templates/libRoot/ui/index.ts +0 -7
- package/cli/templates/libRoot/webkit/frontendLogic.ts +0 -10
- package/cli/templates/libRoot/webkit/index.ts +0 -8
- package/cli/templates/localDev/docker-compose.yaml.template +0 -37
- package/cli/templates/module/__Model__.Template.tsx +0 -36
- package/cli/templates/module/__Model__.Unit.tsx +0 -26
- package/cli/templates/module/__Model__.Util.tsx +0 -30
- package/cli/templates/module/__Model__.View.tsx +0 -29
- package/cli/templates/module/__Model__.Zone.tsx +0 -43
- package/cli/templates/module/__model__.constant.ts +0 -24
- package/cli/templates/module/__model__.dictionary.ts +0 -30
- package/cli/templates/module/__model__.document.ts +0 -23
- package/cli/templates/module/__model__.service.ts +0 -16
- package/cli/templates/module/__model__.signal.ts +0 -27
- package/cli/templates/module/__model__.store.ts +0 -19
- package/cli/templates/moduleRoot/index.tsx +0 -31
- package/cli/templates/pkgRoot/tsconfig.json.template +0 -10
- package/cli/templates/server.ts +0 -45
- package/cli/templates/workspaceRoot/.env.template +0 -14
- package/cli/templates/workspaceRoot/.gitignore.template +0 -120
- package/cli/templates/workspaceRoot/.vscode/settings.json.template +0 -23
- package/cli/templates/workspaceRoot/biome.json.template +0 -191
- package/cli/templates/workspaceRoot/bunfig.toml +0 -4
- package/cli/templates/workspaceRoot/package.json.template +0 -7
- package/cli/templates/workspaceRoot/tsconfig.json.template +0 -29
- package/cli/testHelpers.ts +0 -171
- package/cli/workspace/workspace.command.ts +0 -55
- package/cli/workspace/workspace.runner.ts +0 -79
- package/cli/workspace/workspace.script.ts +0 -74
- package/devkit/aiEditor.ts +0 -299
- package/devkit/akanApp/akanApp.host.ts +0 -393
- package/devkit/akanApp/index.ts +0 -1
- package/devkit/akanConfig/akanConfig.ts +0 -360
- package/devkit/akanConfig/index.ts +0 -2
- package/devkit/akanConfig/types.ts +0 -187
- package/devkit/applicationBuildReporter.ts +0 -69
- package/devkit/applicationBuildRunner.ts +0 -302
- package/devkit/applicationReleasePackager.ts +0 -205
- package/devkit/artifact/implicitRootLayout.ts +0 -155
- package/devkit/artifact/index.ts +0 -1
- package/devkit/artifact/routeSeedIndex.ts +0 -128
- package/devkit/auth.ts +0 -41
- package/devkit/builder.ts +0 -164
- package/devkit/capacitor.base.config.ts +0 -88
- package/devkit/capacitorApp.ts +0 -443
- package/devkit/commandDecorators/argMeta.ts +0 -102
- package/devkit/commandDecorators/command.ts +0 -340
- package/devkit/commandDecorators/commandBuilder.ts +0 -224
- package/devkit/commandDecorators/commandMeta.ts +0 -6
- package/devkit/commandDecorators/dependencyBuilder.ts +0 -100
- package/devkit/commandDecorators/helpFormatter.ts +0 -220
- package/devkit/commandDecorators/index.ts +0 -8
- package/devkit/commandDecorators/targetMeta.ts +0 -31
- package/devkit/commandDecorators/types.ts +0 -10
- package/devkit/constants.ts +0 -25
- package/devkit/createTunnel.ts +0 -36
- package/devkit/dependencyScanner.ts +0 -339
- package/devkit/executors.ts +0 -1362
- package/devkit/extractDeps.ts +0 -85
- package/devkit/fileEditor.ts +0 -106
- package/devkit/fileSys.ts +0 -39
- package/devkit/frontendBuild/allRoutesBuilder.ts +0 -103
- package/devkit/frontendBuild/clientBuildTypes.ts +0 -114
- package/devkit/frontendBuild/clientEntriesBundler.ts +0 -300
- package/devkit/frontendBuild/clientEntryDiscovery.ts +0 -196
- package/devkit/frontendBuild/csrArtifactBuilder.ts +0 -237
- package/devkit/frontendBuild/cssCompiler.ts +0 -285
- package/devkit/frontendBuild/cssImportResolver.ts +0 -116
- package/devkit/frontendBuild/fontOptimizer.ts +0 -427
- package/devkit/frontendBuild/hmrChangeClassifier.ts +0 -28
- package/devkit/frontendBuild/hmrWatcher.ts +0 -101
- package/devkit/frontendBuild/index.ts +0 -18
- package/devkit/frontendBuild/pagesBundleBuilder.ts +0 -137
- package/devkit/frontendBuild/pagesEntrySourceGenerator.ts +0 -37
- package/devkit/frontendBuild/precompressArtifacts.ts +0 -59
- package/devkit/frontendBuild/routeClientBuilder.ts +0 -290
- package/devkit/frontendBuild/routesManifestArtifactSerializer.ts +0 -62
- package/devkit/frontendBuild/ssrBaseArtifactBuilder.ts +0 -139
- package/devkit/frontendBuild/vendorSpecifiers.ts +0 -16
- package/devkit/frontendBuild/watchRootResolver.ts +0 -28
- package/devkit/getCredentials.ts +0 -19
- package/devkit/getDirname.ts +0 -3
- package/devkit/getModelFileData.ts +0 -59
- package/devkit/getRelatedCnsts.ts +0 -300
- package/devkit/guideline.ts +0 -19
- package/devkit/incrementalBuilder/incrementalBuilder.host.ts +0 -152
- package/devkit/incrementalBuilder/incrementalBuilder.proc.ts +0 -331
- package/devkit/incrementalBuilder/index.ts +0 -1
- package/devkit/index.ts +0 -36
- package/devkit/lint/no-deep-internal-import.grit +0 -25
- package/devkit/lint/no-import-client-functions.grit +0 -32
- package/devkit/lint/no-import-external-library.grit +0 -21
- package/devkit/lint/no-js-private-class-method.grit +0 -42
- package/devkit/lint/no-use-client-in-server.grit +0 -7
- package/devkit/lint/non-scalar-props-restricted.grit +0 -13
- package/devkit/linter.ts +0 -248
- package/devkit/mobile/index.ts +0 -1
- package/devkit/mobile/mobileTarget.ts +0 -88
- package/devkit/prompter.ts +0 -71
- package/devkit/scanInfo.ts +0 -606
- package/devkit/selectModel.ts +0 -11
- package/devkit/spinner.ts +0 -54
- package/devkit/src/capacitorApp.ts +0 -277
- package/devkit/sshTunnel.ts +0 -151
- package/devkit/streamAi.ts +0 -45
- package/devkit/transforms/barrelAnalyzer.ts +0 -249
- package/devkit/transforms/barrelImportsPlugin.ts +0 -457
- package/devkit/transforms/externalizeFrameworkPlugin.ts +0 -159
- package/devkit/transforms/index.ts +0 -5
- package/devkit/transforms/rscUseClientTransform.ts +0 -52
- package/devkit/transforms/useClientBundlePlugin.ts +0 -47
- package/devkit/typeChecker.ts +0 -260
- package/devkit/types.ts +0 -44
- package/devkit/ui/MultiScrollList.tsx +0 -228
- package/devkit/ui/ScrollList.tsx +0 -106
- package/devkit/ui/index.ts +0 -2
- package/devkit/uploadRelease.ts +0 -95
- package/devkit/useStdoutDimensions.ts +0 -20
- package/types/cli/application/application.command.d.ts +0 -7
- package/types/cli/application/application.interface.d.ts +0 -40
- package/types/cli/application/application.runner.d.ts +0 -66
- package/types/cli/application/application.script.d.ts +0 -72
- package/types/cli/build.d.ts +0 -1
- package/types/cli/cloud/cloud.command.d.ts +0 -7
- package/types/cli/cloud/cloud.runner.d.ts +0 -13
- package/types/cli/cloud/cloud.script.d.ts +0 -23
- package/types/cli/guideline/guideline.command.d.ts +0 -7
- package/types/cli/guideline/guideline.prompt.d.ts +0 -29
- package/types/cli/guideline/guideline.runner.d.ts +0 -21
- package/types/cli/guideline/guideline.script.d.ts +0 -16
- package/types/cli/index.d.ts +0 -2
- package/types/cli/library/library.command.d.ts +0 -7
- package/types/cli/library/library.runner.d.ts +0 -11
- package/types/cli/library/library.script.d.ts +0 -13
- package/types/cli/module/module.command.d.ts +0 -7
- package/types/cli/module/module.prompt.d.ts +0 -13
- package/types/cli/module/module.request.d.ts +0 -63
- package/types/cli/module/module.runner.d.ts +0 -55
- package/types/cli/module/module.script.d.ts +0 -22
- package/types/cli/npmRegistry.d.ts +0 -1
- package/types/cli/openBrowser.d.ts +0 -1
- package/types/cli/package/package.command.d.ts +0 -7
- package/types/cli/package/package.runner.d.ts +0 -13
- package/types/cli/package/package.script.d.ts +0 -18
- package/types/cli/page/page.command.d.ts +0 -7
- package/types/cli/page/page.runner.d.ts +0 -10
- package/types/cli/page/page.script.d.ts +0 -13
- package/types/cli/pluralizeName.d.ts +0 -1
- package/types/cli/scalar/scalar.command.d.ts +0 -7
- package/types/cli/scalar/scalar.prompt.d.ts +0 -23
- package/types/cli/scalar/scalar.runner.d.ts +0 -16
- package/types/cli/scalar/scalar.script.d.ts +0 -11
- package/types/cli/semver.d.ts +0 -1
- package/types/cli/templates/__scalar/__model__/__model__.constant.d.ts +0 -7
- package/types/cli/templates/__scalar/__model__/__model__.dictionary.d.ts +0 -7
- package/types/cli/templates/__scalar/__model__/__model__.document.d.ts +0 -7
- package/types/cli/templates/app/akan.config.d.ts +0 -6
- package/types/cli/templates/app/env/env.client.d.ts +0 -6
- package/types/cli/templates/app/env/env.client.type.d.ts +0 -6
- package/types/cli/templates/app/env/env.server.d.ts +0 -6
- package/types/cli/templates/app/lib/___appName__/__appName__.dictionary.d.ts +0 -7
- package/types/cli/templates/app/lib/___appName__/__appName__.service.d.ts +0 -7
- package/types/cli/templates/app/lib/___appName__/__appName__.signal.d.ts +0 -7
- package/types/cli/templates/app/lib/___appName__/__appName__.store.d.ts +0 -7
- package/types/cli/templates/app/lib/option.d.ts +0 -6
- package/types/cli/templates/app/main.d.ts +0 -6
- package/types/cli/templates/app/page/_index.d.ts +0 -9
- package/types/cli/templates/app/page/_layout.d.ts +0 -11
- package/types/cli/templates/client.d.ts +0 -4
- package/types/cli/templates/crudPages/[__model__Id]/edit/page.d.ts +0 -11
- package/types/cli/templates/crudPages/[__model__Id]/page.d.ts +0 -11
- package/types/cli/templates/crudPages/new/page.d.ts +0 -11
- package/types/cli/templates/crudPages/page.d.ts +0 -11
- package/types/cli/templates/crudSinglePage/page.d.ts +0 -11
- package/types/cli/templates/env/_env.server.type.d.ts +0 -7
- package/types/cli/templates/facetIndex/index.d.ts +0 -13
- package/types/cli/templates/facetIndex.d.ts +0 -1
- package/types/cli/templates/index.d.ts +0 -6
- package/types/cli/templates/lib/__lib/lib.constant.d.ts +0 -4
- package/types/cli/templates/lib/__lib/lib.dictionary.d.ts +0 -4
- package/types/cli/templates/lib/__lib/lib.document.d.ts +0 -4
- package/types/cli/templates/lib/__lib/lib.service.d.ts +0 -4
- package/types/cli/templates/lib/__lib/lib.signal.d.ts +0 -4
- package/types/cli/templates/lib/__lib/lib.store.d.ts +0 -4
- package/types/cli/templates/lib/cnst.d.ts +0 -4
- package/types/cli/templates/lib/db.d.ts +0 -4
- package/types/cli/templates/lib/dict.d.ts +0 -4
- package/types/cli/templates/lib/sig.d.ts +0 -4
- package/types/cli/templates/lib/srv.d.ts +0 -4
- package/types/cli/templates/lib/st.d.ts +0 -4
- package/types/cli/templates/lib/useClient.d.ts +0 -4
- package/types/cli/templates/lib/useServer.d.ts +0 -4
- package/types/cli/templates/libRoot/akan.config.d.ts +0 -5
- package/types/cli/templates/libRoot/base/baseLogic.d.ts +0 -5
- package/types/cli/templates/libRoot/base/index.d.ts +0 -5
- package/types/cli/templates/libRoot/base.d.ts +0 -1
- package/types/cli/templates/libRoot/common/commonLogic.d.ts +0 -5
- package/types/cli/templates/libRoot/common/index.d.ts +0 -5
- package/types/cli/templates/libRoot/common.d.ts +0 -1
- package/types/cli/templates/libRoot/lib/___libName__/__libName__.dictionary.d.ts +0 -6
- package/types/cli/templates/libRoot/lib/___libName__/__libName__.service.d.ts +0 -6
- package/types/cli/templates/libRoot/lib/___libName__/__libName__.store.d.ts +0 -6
- package/types/cli/templates/libRoot/lib/option.d.ts +0 -6
- package/types/cli/templates/libRoot/srvkit/backendLogic.d.ts +0 -5
- package/types/cli/templates/libRoot/srvkit/index.d.ts +0 -5
- package/types/cli/templates/libRoot/srvkit.d.ts +0 -1
- package/types/cli/templates/libRoot/ui/index.d.ts +0 -5
- package/types/cli/templates/libRoot/ui.d.ts +0 -1
- package/types/cli/templates/libRoot/webkit/frontendLogic.d.ts +0 -5
- package/types/cli/templates/libRoot/webkit/index.d.ts +0 -5
- package/types/cli/templates/libRoot/webkit.d.ts +0 -1
- package/types/cli/templates/module/__Model__.Template.d.ts +0 -11
- package/types/cli/templates/module/__Model__.Unit.d.ts +0 -11
- package/types/cli/templates/module/__Model__.Util.d.ts +0 -11
- package/types/cli/templates/module/__Model__.View.d.ts +0 -11
- package/types/cli/templates/module/__Model__.Zone.d.ts +0 -11
- package/types/cli/templates/module/__model__.constant.d.ts +0 -8
- package/types/cli/templates/module/__model__.dictionary.d.ts +0 -8
- package/types/cli/templates/module/__model__.document.d.ts +0 -8
- package/types/cli/templates/module/__model__.service.d.ts +0 -8
- package/types/cli/templates/module/__model__.signal.d.ts +0 -9
- package/types/cli/templates/module/__model__.store.d.ts +0 -8
- package/types/cli/templates/moduleRoot/index.d.ts +0 -11
- package/types/cli/templates/moduleRoot.d.ts +0 -1
- package/types/cli/templates/server.d.ts +0 -4
- package/types/cli/templates.d.ts +0 -1
- package/types/cli/testHelpers.d.ts +0 -64
- package/types/cli/workspace/workspace.command.d.ts +0 -7
- package/types/cli/workspace/workspace.runner.d.ts +0 -14
- package/types/cli/workspace/workspace.script.d.ts +0 -29
- package/types/cli.d.ts +0 -1
- package/types/devkit/aiEditor.d.ts +0 -50
- package/types/devkit/akanApp/akanApp.host.d.ts +0 -16
- package/types/devkit/akanApp/index.d.ts +0 -1
- package/types/devkit/akanApp.d.ts +0 -1
- package/types/devkit/akanConfig/akanConfig.d.ts +0 -36
- package/types/devkit/akanConfig/index.d.ts +0 -2
- package/types/devkit/akanConfig.d.ts +0 -1
- package/types/devkit/applicationBuildReporter.d.ts +0 -25
- package/types/devkit/applicationBuildRunner.d.ts +0 -29
- package/types/devkit/applicationReleasePackager.d.ts +0 -17
- package/types/devkit/artifact/implicitRootLayout.d.ts +0 -17
- package/types/devkit/artifact/index.d.ts +0 -1
- package/types/devkit/artifact/routeSeedIndex.d.ts +0 -38
- package/types/devkit/artifact.d.ts +0 -1
- package/types/devkit/auth.d.ts +0 -9
- package/types/devkit/builder.d.ts +0 -18
- package/types/devkit/capacitor.base.config.d.ts +0 -3
- package/types/devkit/capacitorApp.d.ts +0 -58
- package/types/devkit/commandDecorators/argMeta.d.ts +0 -68
- package/types/devkit/commandDecorators/command.d.ts +0 -2
- package/types/devkit/commandDecorators/commandBuilder.d.ts +0 -60
- package/types/devkit/commandDecorators/commandMeta.d.ts +0 -2
- package/types/devkit/commandDecorators/dependencyBuilder.d.ts +0 -22
- package/types/devkit/commandDecorators/helpFormatter.d.ts +0 -3
- package/types/devkit/commandDecorators/index.d.ts +0 -8
- package/types/devkit/commandDecorators/targetMeta.d.ts +0 -21
- package/types/devkit/commandDecorators/types.d.ts +0 -8
- package/types/devkit/commandDecorators.d.ts +0 -1
- package/types/devkit/constants.d.ts +0 -25
- package/types/devkit/createTunnel.d.ts +0 -8
- package/types/devkit/dependencyScanner.d.ts +0 -33
- package/types/devkit/executors.d.ts +0 -320
- package/types/devkit/extractDeps.d.ts +0 -7
- package/types/devkit/fileEditor.d.ts +0 -16
- package/types/devkit/fileSys.d.ts +0 -12
- package/types/devkit/frontendBuild/allRoutesBuilder.d.ts +0 -18
- package/types/devkit/frontendBuild/clientBuildTypes.d.ts +0 -107
- package/types/devkit/frontendBuild/clientEntriesBundler.d.ts +0 -12
- package/types/devkit/frontendBuild/clientEntryDiscovery.d.ts +0 -19
- package/types/devkit/frontendBuild/csrArtifactBuilder.d.ts +0 -16
- package/types/devkit/frontendBuild/cssCompiler.d.ts +0 -25
- package/types/devkit/frontendBuild/cssImportResolver.d.ts +0 -9
- package/types/devkit/frontendBuild/fontOptimizer.d.ts +0 -14
- package/types/devkit/frontendBuild/hmrChangeClassifier.d.ts +0 -5
- package/types/devkit/frontendBuild/hmrWatcher.d.ts +0 -21
- package/types/devkit/frontendBuild/index.d.ts +0 -18
- package/types/devkit/frontendBuild/pagesBundleBuilder.d.ts +0 -28
- package/types/devkit/frontendBuild/pagesEntrySourceGenerator.d.ts +0 -9
- package/types/devkit/frontendBuild/precompressArtifacts.d.ts +0 -7
- package/types/devkit/frontendBuild/routeClientBuilder.d.ts +0 -50
- package/types/devkit/frontendBuild/routesManifestArtifactSerializer.d.ts +0 -12
- package/types/devkit/frontendBuild/ssrBaseArtifactBuilder.d.ts +0 -16
- package/types/devkit/frontendBuild/vendorSpecifiers.d.ts +0 -2
- package/types/devkit/frontendBuild/watchRootResolver.d.ts +0 -6
- package/types/devkit/frontendBuild.d.ts +0 -1
- package/types/devkit/getCredentials.d.ts +0 -12
- package/types/devkit/getDirname.d.ts +0 -1
- package/types/devkit/getModelFileData.d.ts +0 -16
- package/types/devkit/getRelatedCnsts.d.ts +0 -53
- package/types/devkit/guideline.d.ts +0 -19
- package/types/devkit/incrementalBuilder/incrementalBuilder.host.d.ts +0 -30
- package/types/devkit/incrementalBuilder/incrementalBuilder.proc.d.ts +0 -1
- package/types/devkit/incrementalBuilder/index.d.ts +0 -1
- package/types/devkit/incrementalBuilder.d.ts +0 -1
- package/types/devkit/index.d.ts +0 -36
- package/types/devkit/linter.d.ts +0 -108
- package/types/devkit/mobile/index.d.ts +0 -1
- package/types/devkit/mobile/mobileTarget.d.ts +0 -14
- package/types/devkit/mobile.d.ts +0 -1
- package/types/devkit/prompter.d.ts +0 -15
- package/types/devkit/scanInfo.d.ts +0 -82
- package/types/devkit/selectModel.d.ts +0 -1
- package/types/devkit/spinner.d.ts +0 -20
- package/types/devkit/src/capacitorApp.d.ts +0 -39
- package/types/devkit/sshTunnel.d.ts +0 -14
- package/types/devkit/streamAi.d.ts +0 -6
- package/types/devkit/transforms/barrelAnalyzer.d.ts +0 -27
- package/types/devkit/transforms/barrelImportsPlugin.d.ts +0 -26
- package/types/devkit/transforms/externalizeFrameworkPlugin.d.ts +0 -49
- package/types/devkit/transforms/index.d.ts +0 -5
- package/types/devkit/transforms/rscUseClientTransform.d.ts +0 -10
- package/types/devkit/transforms/useClientBundlePlugin.d.ts +0 -19
- package/types/devkit/transforms.d.ts +0 -1
- package/types/devkit/typeChecker.d.ts +0 -62
- package/types/devkit/types.d.ts +0 -43
- package/types/devkit/ui/MultiScrollList.d.ts +0 -13
- package/types/devkit/ui/ScrollList.d.ts +0 -7
- package/types/devkit/ui/index.d.ts +0 -2
- package/types/devkit/ui.d.ts +0 -1
- package/types/devkit/uploadRelease.d.ts +0 -10
- package/types/devkit/useStdoutDimensions.d.ts +0 -1
- package/types/devkit.d.ts +0 -1
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
import { Logger } from "akanjs/common";
|
|
2
|
-
import {
|
|
3
|
-
type App,
|
|
4
|
-
ApplicationBuildReporter,
|
|
5
|
-
type DatabaseMode,
|
|
6
|
-
type Exec,
|
|
7
|
-
type Lib,
|
|
8
|
-
LibExecutor,
|
|
9
|
-
type MobileEnv,
|
|
10
|
-
PkgExecutor,
|
|
11
|
-
type ReleaseSourceOptions,
|
|
12
|
-
type Sys,
|
|
13
|
-
script,
|
|
14
|
-
type TypecheckOptions,
|
|
15
|
-
type Workspace,
|
|
16
|
-
} from "akanjs/devkit";
|
|
17
|
-
import { LibraryScript } from "../library/library.script";
|
|
18
|
-
import { ApplicationRunner } from "./application.runner";
|
|
19
|
-
|
|
20
|
-
type MobileOperation = "local" | "release";
|
|
21
|
-
type MobileCommandOptions = {
|
|
22
|
-
target?: string;
|
|
23
|
-
env?: MobileEnv;
|
|
24
|
-
write?: boolean;
|
|
25
|
-
regenerate?: boolean;
|
|
26
|
-
};
|
|
27
|
-
type MobileReleaseOptions = MobileCommandOptions & {
|
|
28
|
-
allowLocalRelease?: boolean;
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
export class ApplicationScript extends script("application", [ApplicationRunner, LibraryScript]) {
|
|
32
|
-
async createApplication(
|
|
33
|
-
appName: string,
|
|
34
|
-
workspace: Workspace,
|
|
35
|
-
{ start = false, libs = [] }: { start?: boolean; libs?: string[] } = {},
|
|
36
|
-
) {
|
|
37
|
-
const spinner = workspace.spinning("Creating application...");
|
|
38
|
-
const app = await this.applicationRunner.createApplication(appName, workspace, libs);
|
|
39
|
-
spinner.succeed(`Application created in apps/${app.name}`);
|
|
40
|
-
await app.scanSync();
|
|
41
|
-
if (start) await this.start(app, { open: true });
|
|
42
|
-
}
|
|
43
|
-
async removeApplication(app: App) {
|
|
44
|
-
const spinner = app.spinning("Removing application...");
|
|
45
|
-
await this.applicationRunner.removeApplication(app);
|
|
46
|
-
spinner.succeed(`Application ${app.name} (apps/${app.name}) removed`);
|
|
47
|
-
}
|
|
48
|
-
async sync(sys: Sys) {
|
|
49
|
-
if (sys.type === "app") await (sys as App).scanSync();
|
|
50
|
-
else await this.libraryScript.syncLibrary(sys as Lib);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
async script(app: App, filename: string | null) {
|
|
54
|
-
const scriptFilename = filename ?? (await this.applicationRunner.getScriptFilename(app));
|
|
55
|
-
await app.scanSync();
|
|
56
|
-
await this.applicationRunner.runScript(app, scriptFilename);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
async build(
|
|
60
|
-
app: App,
|
|
61
|
-
{ write = true, fast = false, quiet = false }: { write?: boolean; fast?: boolean; quiet?: boolean } = {},
|
|
62
|
-
) {
|
|
63
|
-
await app.scanSync({ write });
|
|
64
|
-
if (!quiet) Logger.rawLog(`Creating an optimized production build for ${app.name}...`);
|
|
65
|
-
try {
|
|
66
|
-
const result = await this.applicationRunner.build(app, {
|
|
67
|
-
fast,
|
|
68
|
-
spinner: !quiet,
|
|
69
|
-
});
|
|
70
|
-
Logger.rawLog(`${app.name} built in dist/apps/${app.name}`);
|
|
71
|
-
if (!quiet) ApplicationBuildReporter.printSummary(result);
|
|
72
|
-
} catch (error) {
|
|
73
|
-
Logger.rawLog(`${app.name} build failed in dist/apps/${app.name}`, undefined, "error");
|
|
74
|
-
Logger.rawLog(ApplicationBuildReporter.formatError(error), undefined, "error");
|
|
75
|
-
throw error;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
async typecheck(
|
|
80
|
-
app: App,
|
|
81
|
-
{ write = true, clean = false, incremental = true }: TypecheckOptions & { write?: boolean } = {},
|
|
82
|
-
) {
|
|
83
|
-
await app.scanSync({ write });
|
|
84
|
-
const spinner = app.spinning(`Typechecking ${app.name}...`);
|
|
85
|
-
try {
|
|
86
|
-
await this.applicationRunner.typecheck(app, { clean, incremental });
|
|
87
|
-
spinner.succeed(`${app.name} typechecked`);
|
|
88
|
-
} catch (error) {
|
|
89
|
-
spinner.fail(`${app.name} typecheck failed`);
|
|
90
|
-
Logger.rawLog(ApplicationBuildReporter.formatError(error), undefined, "error");
|
|
91
|
-
throw error;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
async test(exec: Exec, { write = true }: { write?: boolean } = {}) {
|
|
96
|
-
const spinner = exec.spinning(`Preparing ${exec.name}...`);
|
|
97
|
-
try {
|
|
98
|
-
if (exec instanceof PkgExecutor) await exec.scan({ refresh: true });
|
|
99
|
-
else if (exec instanceof LibExecutor) await this.libraryScript.syncLibrary(exec);
|
|
100
|
-
else await (exec as App).scanSync({ write });
|
|
101
|
-
spinner.succeed(`${exec.name} prepared`);
|
|
102
|
-
} catch (error) {
|
|
103
|
-
spinner.fail(`${exec.name} prepare failed`);
|
|
104
|
-
throw error;
|
|
105
|
-
}
|
|
106
|
-
await this.applicationRunner.test(exec);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
async start(
|
|
110
|
-
app: App,
|
|
111
|
-
{
|
|
112
|
-
open = false,
|
|
113
|
-
dbup = true,
|
|
114
|
-
withInk = false,
|
|
115
|
-
write = true,
|
|
116
|
-
}: { open?: boolean; dbup?: boolean; withInk?: boolean; write?: boolean } = {},
|
|
117
|
-
) {
|
|
118
|
-
await app.scanSync({ write });
|
|
119
|
-
const akanConfig = await app.getConfig();
|
|
120
|
-
const databaseMode = (process.env.AKAN_DATABASE_MODE ?? akanConfig.defaultDatabaseMode ?? "single") as DatabaseMode;
|
|
121
|
-
if (app.getEnv() === "local" && dbup && databaseMode !== "single") {
|
|
122
|
-
const wasDbAlreadyUp = await this.dbup(app.workspace, databaseMode);
|
|
123
|
-
if (!wasDbAlreadyUp)
|
|
124
|
-
process.on("SIGINT", async () => {
|
|
125
|
-
await this.dbdown(app.workspace);
|
|
126
|
-
process.exit(0);
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
const spinner = app.spinning("Preparing backend...");
|
|
130
|
-
const akanAppHost = await this.applicationRunner.start(app, {
|
|
131
|
-
open,
|
|
132
|
-
onStart: () => {
|
|
133
|
-
spinner.succeed(`${app.name} prepared, ready to start`);
|
|
134
|
-
},
|
|
135
|
-
withInk,
|
|
136
|
-
});
|
|
137
|
-
return akanAppHost;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
async buildIos(app: App, { write = true, target, env = "debug", regenerate = false }: MobileCommandOptions = {}) {
|
|
141
|
-
await app.scanSync({ write });
|
|
142
|
-
await this.applicationRunner.buildIos(app, { target, env, regenerate });
|
|
143
|
-
}
|
|
144
|
-
async startIos(
|
|
145
|
-
app: App,
|
|
146
|
-
{
|
|
147
|
-
open = false,
|
|
148
|
-
operation = "local",
|
|
149
|
-
env = "local",
|
|
150
|
-
write = true,
|
|
151
|
-
target,
|
|
152
|
-
regenerate = false,
|
|
153
|
-
}: {
|
|
154
|
-
operation?: MobileOperation;
|
|
155
|
-
env?: MobileEnv;
|
|
156
|
-
open?: boolean;
|
|
157
|
-
write?: boolean;
|
|
158
|
-
target?: string;
|
|
159
|
-
regenerate?: boolean;
|
|
160
|
-
} = {},
|
|
161
|
-
) {
|
|
162
|
-
await app.scanSync({ write });
|
|
163
|
-
await this.applicationRunner.startIos(app, { open, operation, env, target, regenerate });
|
|
164
|
-
}
|
|
165
|
-
async releaseIos(
|
|
166
|
-
app: App,
|
|
167
|
-
{ write = true, target, env = "main", regenerate = false, allowLocalRelease = false }: MobileReleaseOptions = {},
|
|
168
|
-
) {
|
|
169
|
-
await app.scanSync({ write });
|
|
170
|
-
if (env === "local" && !allowLocalRelease)
|
|
171
|
-
throw new Error(
|
|
172
|
-
"releaseIos --env local is blocked. Pass allowLocalRelease only for explicit local release testing.",
|
|
173
|
-
);
|
|
174
|
-
await this.applicationRunner.releaseIos(app, { target, env, regenerate });
|
|
175
|
-
}
|
|
176
|
-
async buildAndroid(app: App, { write = true, target, env = "debug", regenerate = false }: MobileCommandOptions = {}) {
|
|
177
|
-
await app.scanSync({ write });
|
|
178
|
-
await this.applicationRunner.buildAndroid(app, { target, env, regenerate });
|
|
179
|
-
}
|
|
180
|
-
async startAndroid(
|
|
181
|
-
app: App,
|
|
182
|
-
{
|
|
183
|
-
open = false,
|
|
184
|
-
operation = "local",
|
|
185
|
-
env = "local",
|
|
186
|
-
write = true,
|
|
187
|
-
target,
|
|
188
|
-
regenerate = false,
|
|
189
|
-
}: {
|
|
190
|
-
open?: boolean;
|
|
191
|
-
env?: MobileEnv;
|
|
192
|
-
operation?: MobileOperation;
|
|
193
|
-
write?: boolean;
|
|
194
|
-
target?: string;
|
|
195
|
-
regenerate?: boolean;
|
|
196
|
-
} = {},
|
|
197
|
-
) {
|
|
198
|
-
await app.scanSync({ write });
|
|
199
|
-
await this.applicationRunner.startAndroid(app, { open, operation, env, target, regenerate });
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
async releaseAndroid(
|
|
203
|
-
app: App,
|
|
204
|
-
assembleType: "apk" | "aab",
|
|
205
|
-
{ write = true, target, env = "main", regenerate = false, allowLocalRelease = false }: MobileReleaseOptions = {},
|
|
206
|
-
) {
|
|
207
|
-
await app.scanSync({ write });
|
|
208
|
-
if (env === "local" && !allowLocalRelease)
|
|
209
|
-
throw new Error(
|
|
210
|
-
"releaseAndroid --env local is blocked. Pass allowLocalRelease only for explicit local release testing.",
|
|
211
|
-
);
|
|
212
|
-
await this.applicationRunner.releaseAndroid(app, assembleType, { target, env, regenerate });
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
async configureApp(app: App) {
|
|
216
|
-
await this.applicationRunner.configureApp(app);
|
|
217
|
-
}
|
|
218
|
-
async releaseSource(app: App, options: ReleaseSourceOptions) {
|
|
219
|
-
await this.applicationRunner.releaseSource(app, options);
|
|
220
|
-
}
|
|
221
|
-
async codepush(app: App, os: "ios" | "android") {
|
|
222
|
-
await this.applicationRunner.codepush(app, os);
|
|
223
|
-
}
|
|
224
|
-
async dbup(workspace: Workspace, mode: DatabaseMode = "multiple"): Promise<boolean> {
|
|
225
|
-
const spinner = workspace.spinning(`Starting local database (${mode})...`);
|
|
226
|
-
const wasAlreadyUp = await this.applicationRunner.dbup(workspace, mode);
|
|
227
|
-
spinner.succeed(wasAlreadyUp ? `Local database (${mode}) was already up` : `Local database (${mode}) is up`);
|
|
228
|
-
return wasAlreadyUp;
|
|
229
|
-
}
|
|
230
|
-
async dbdown(workspace: Workspace) {
|
|
231
|
-
const spinner = workspace.spinning("Stopping local database...");
|
|
232
|
-
await this.applicationRunner.dbdown(workspace);
|
|
233
|
-
spinner.succeed("Local database (/local/docker-compose.yaml) is down");
|
|
234
|
-
}
|
|
235
|
-
async testSys(sys: Sys) {
|
|
236
|
-
if (sys.type === "app") await this.testApplication(sys as App);
|
|
237
|
-
else await this.libraryScript.testLibrary(sys as Lib);
|
|
238
|
-
}
|
|
239
|
-
async testApplication(app: App) {
|
|
240
|
-
const spinner = app.spinning("Testing application...");
|
|
241
|
-
await this.applicationRunner.testApplication(app);
|
|
242
|
-
spinner.succeed(`Application ${app.name} (apps/${app.name}) test is successful`);
|
|
243
|
-
}
|
|
244
|
-
}
|
package/cli/build.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { $ } from "bun";
|
|
2
|
-
|
|
3
|
-
const CLI_DIR = import.meta.dir;
|
|
4
|
-
const PACKAGE_DIR = `${CLI_DIR}/..`;
|
|
5
|
-
const WORKSPACE_ROOT = process.env.WORKSPACE_ROOT ?? process.cwd();
|
|
6
|
-
const OUT_DIR = process.env.DIST_DIR ?? `${WORKSPACE_ROOT}/dist/pkgs/akanjs`;
|
|
7
|
-
|
|
8
|
-
const build = async () => {
|
|
9
|
-
try {
|
|
10
|
-
const packageJson = await Bun.file(`${PACKAGE_DIR}/package.json`).json();
|
|
11
|
-
await $`rm -rf ${OUT_DIR}/cli`;
|
|
12
|
-
await Bun.build({
|
|
13
|
-
entrypoints: [`${CLI_DIR}/index.ts`],
|
|
14
|
-
splitting: false,
|
|
15
|
-
target: "bun",
|
|
16
|
-
outdir: `${OUT_DIR}/cli`,
|
|
17
|
-
external: Object.keys({ ...packageJson.dependencies, ...packageJson.peerDependencies }),
|
|
18
|
-
plugins: [],
|
|
19
|
-
});
|
|
20
|
-
await $`cp -R ${CLI_DIR}/templates ${OUT_DIR}/cli/templates`;
|
|
21
|
-
} catch (error) {
|
|
22
|
-
console.error(error);
|
|
23
|
-
process.exit(1);
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
build();
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { command, Workspace } from "akanjs/devkit";
|
|
2
|
-
|
|
3
|
-
import { CloudScript } from "./cloud.script";
|
|
4
|
-
|
|
5
|
-
export class CloudCommand extends command("cloud", [CloudScript], ({ public: target }) => ({
|
|
6
|
-
login: target({ desc: "Login to Akan Cloud services" })
|
|
7
|
-
.with(Workspace)
|
|
8
|
-
.exec(async function (workspace) {
|
|
9
|
-
await this.cloudScript.login(workspace);
|
|
10
|
-
}),
|
|
11
|
-
logout: target({ desc: "Logout from Akan Cloud services" })
|
|
12
|
-
.with(Workspace)
|
|
13
|
-
.exec(async function (workspace) {
|
|
14
|
-
await this.cloudScript.logout(workspace);
|
|
15
|
-
}),
|
|
16
|
-
setLlm: target({ desc: "Configure LLM (Large Language Model) API key" })
|
|
17
|
-
.with(Workspace)
|
|
18
|
-
.exec(async function (workspace) {
|
|
19
|
-
await this.cloudScript.setLlm(workspace);
|
|
20
|
-
}),
|
|
21
|
-
resetLlm: target({ desc: "Reset LLM configuration to default" })
|
|
22
|
-
.with(Workspace)
|
|
23
|
-
.exec(function (workspace) {
|
|
24
|
-
this.cloudScript.resetLlm(workspace);
|
|
25
|
-
}),
|
|
26
|
-
ask: target({ desc: "Ask AI assistant a question about your project" })
|
|
27
|
-
.option("question", String, { ask: "question to ask" })
|
|
28
|
-
.with(Workspace)
|
|
29
|
-
.exec(async function (question, workspace) {
|
|
30
|
-
await this.cloudScript.ask(question, workspace);
|
|
31
|
-
}),
|
|
32
|
-
deployAkan: target({ devOnly: true, desc: "Deploy Akan.js framework to cloud (internal use)" })
|
|
33
|
-
.option("test", Boolean, { desc: "test the deployment", default: true })
|
|
34
|
-
.with(Workspace)
|
|
35
|
-
.exec(async function (test, workspace) {
|
|
36
|
-
await this.cloudScript.deployAkan(workspace, { test });
|
|
37
|
-
}),
|
|
38
|
-
update: target({ desc: "Update Akan.js framework to the latest version" })
|
|
39
|
-
.with(Workspace)
|
|
40
|
-
.option("tag", String, {
|
|
41
|
-
desc: "tag of the update",
|
|
42
|
-
default: "latest",
|
|
43
|
-
enum: ["latest", "dev", "canary", "beta", "rc", "alpha"],
|
|
44
|
-
})
|
|
45
|
-
.exec(async function (workspace, tag) {
|
|
46
|
-
await this.cloudScript.update(workspace, tag);
|
|
47
|
-
}),
|
|
48
|
-
})) {}
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
import { confirm } from "@inquirer/prompts";
|
|
2
|
-
import { Logger, sleep } from "akanjs/common";
|
|
3
|
-
import {
|
|
4
|
-
AiSession,
|
|
5
|
-
akanCloudHost,
|
|
6
|
-
akanCloudUrl,
|
|
7
|
-
getHostConfig,
|
|
8
|
-
getSelf,
|
|
9
|
-
runner,
|
|
10
|
-
setHostConfig,
|
|
11
|
-
type Workspace,
|
|
12
|
-
} from "akanjs/devkit";
|
|
13
|
-
import chalk from "chalk";
|
|
14
|
-
import * as QRcode from "qrcode";
|
|
15
|
-
import { getLatestPackageVersion } from "../npmRegistry";
|
|
16
|
-
import { openBrowser } from "../openBrowser";
|
|
17
|
-
|
|
18
|
-
export class CloudRunner extends runner("cloud") {
|
|
19
|
-
async login() {
|
|
20
|
-
const config = await getHostConfig();
|
|
21
|
-
const self = config.auth ? await getSelf(config.auth.token) : null;
|
|
22
|
-
if (self) {
|
|
23
|
-
Logger.rawLog(chalk.green(`\n✓ Already logged in akan cloud as ${self.nickname}\n`));
|
|
24
|
-
return true;
|
|
25
|
-
}
|
|
26
|
-
const remoteId = crypto.randomUUID();
|
|
27
|
-
const signinUrl = `${akanCloudUrl}/signin?remoteId=${remoteId}`;
|
|
28
|
-
|
|
29
|
-
Logger.rawLog(chalk.bold(`\n${chalk.green("➤")} Authentication Required`));
|
|
30
|
-
Logger.rawLog(chalk.dim("Please visit or click the following URL:"));
|
|
31
|
-
Logger.rawLog(`${chalk.cyan.underline(signinUrl)}\n`);
|
|
32
|
-
|
|
33
|
-
try {
|
|
34
|
-
const qrcode = await new Promise<string>((resolve, reject) => {
|
|
35
|
-
QRcode.toString(signinUrl, { type: "terminal", small: true }, (err, data) => {
|
|
36
|
-
if (err) reject(err);
|
|
37
|
-
resolve(data);
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
Logger.rawLog(qrcode);
|
|
41
|
-
await openBrowser(signinUrl);
|
|
42
|
-
Logger.rawLog(chalk.dim("Opening browser..."));
|
|
43
|
-
} catch {
|
|
44
|
-
Logger.rawLog(chalk.yellow("Could not open browser. Please visit the URL manually."));
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
Logger.rawLog(chalk.dim("Waiting for authentication..."));
|
|
48
|
-
const MAX_RETRY = 300;
|
|
49
|
-
for (let i = 0; i < MAX_RETRY; i++) {
|
|
50
|
-
const res = await fetch(`${akanCloudUrl}/user/getRemoteAuthToken/${remoteId}`);
|
|
51
|
-
const { jwt } = (await res.json()) as { jwt: string | null };
|
|
52
|
-
const self = jwt ? await getSelf(jwt) : null;
|
|
53
|
-
if (jwt && self) {
|
|
54
|
-
setHostConfig(akanCloudHost, { auth: { token: jwt, self } });
|
|
55
|
-
Logger.rawLog(chalk.green(`\r✓ Authentication successful!`));
|
|
56
|
-
Logger.rawLog(chalk.green.bold(`\n✨ Welcome aboard, ${self.nickname}!`));
|
|
57
|
-
Logger.rawLog(chalk.dim("You're now ready to use Akan CLI!\n"));
|
|
58
|
-
return true;
|
|
59
|
-
}
|
|
60
|
-
await sleep(2000);
|
|
61
|
-
}
|
|
62
|
-
throw new Error(chalk.red("✖ Authentication timed out after 10 minutes. Please try again."));
|
|
63
|
-
}
|
|
64
|
-
async logout() {
|
|
65
|
-
const config = await getHostConfig();
|
|
66
|
-
if (config.auth) {
|
|
67
|
-
setHostConfig(akanCloudHost, {});
|
|
68
|
-
Logger.rawLog(chalk.magenta.bold(`\n👋 Goodbye, ${config.auth.self.nickname}!`));
|
|
69
|
-
Logger.rawLog(chalk.dim("───────────────────────────────────────────────\n"));
|
|
70
|
-
Logger.rawLog(chalk.cyan("You have been successfully logged out."));
|
|
71
|
-
Logger.rawLog(chalk.dim("Thank you for using Akan CLI. Come back soon! 🌟\n"));
|
|
72
|
-
} else {
|
|
73
|
-
Logger.rawLog(chalk.yellow.bold("\n⚠️ No active session found"));
|
|
74
|
-
Logger.rawLog(chalk.dim("You were not logged in to begin with\n"));
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
async setLlm() {
|
|
78
|
-
await AiSession.init({ useExisting: true });
|
|
79
|
-
}
|
|
80
|
-
resetLlm() {
|
|
81
|
-
AiSession.setLlmConfig(null);
|
|
82
|
-
Logger.rawLog(chalk.green("☑️ LLM model config is cleared. Please run `akan set-llm` to set a new LLM model."));
|
|
83
|
-
}
|
|
84
|
-
async getAkanPkgs(workspace: Workspace) {
|
|
85
|
-
const pkgs = await workspace.getPkgs();
|
|
86
|
-
return pkgs.filter((pkg) => pkg === "akanjs" || pkg === "create-akan-workspace");
|
|
87
|
-
}
|
|
88
|
-
async deployAkan(workspace: Workspace, akanPkgs: string[]) {
|
|
89
|
-
const akanPackageJson = (await workspace.readJson("pkgs/akanjs/package.json")) as { version: string };
|
|
90
|
-
const [majorVersion, minorVersion, patchVersion, devPatchVersion] = akanPackageJson.version.split(".");
|
|
91
|
-
const isOfficialRelease = !devPatchVersion;
|
|
92
|
-
const targetVersionPrefix = isOfficialRelease
|
|
93
|
-
? `${majorVersion}.${minorVersion}`
|
|
94
|
-
: `${majorVersion}.${minorVersion}.${patchVersion}`;
|
|
95
|
-
const tag = isOfficialRelease ? "latest" : (patchVersion.split("-").at(1) ?? "dev");
|
|
96
|
-
const getNextVersion = async (prefix: string, tag: string) => {
|
|
97
|
-
try {
|
|
98
|
-
const latestPublishedVersion = await getLatestPackageVersion("akanjs", tag);
|
|
99
|
-
const latestPatch = latestPublishedVersion.startsWith(prefix)
|
|
100
|
-
? parseInt(latestPublishedVersion.split(".").at(-1) ?? "-1")
|
|
101
|
-
: -1;
|
|
102
|
-
const nextVersion = `${prefix}.${latestPatch + 1}`;
|
|
103
|
-
return { nextVersion, latestPublishedVersion };
|
|
104
|
-
} catch {
|
|
105
|
-
return { nextVersion: `${prefix}.0`, latestPublishedVersion: null };
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
const { nextVersion, latestPublishedVersion } = await getNextVersion(targetVersionPrefix, tag);
|
|
109
|
-
Logger.info(`Latest published version of akanjs: ${latestPublishedVersion ?? "none"}`);
|
|
110
|
-
Logger.info(`Next version of akanjs: ${nextVersion}`);
|
|
111
|
-
for (const library of akanPkgs) {
|
|
112
|
-
const packageJson = (await workspace.readJson(`pkgs/${library}/package.json`)) as { version: string };
|
|
113
|
-
const newPackageJsonStr = JSON.stringify({ ...packageJson, version: nextVersion }, null, 2);
|
|
114
|
-
await workspace.writeFile(`pkgs/${library}/package.json`, newPackageJsonStr);
|
|
115
|
-
const distPackageJson = (await workspace.readJson(`dist/pkgs/${library}/package.json`)) as {
|
|
116
|
-
version: string;
|
|
117
|
-
dependencies?: Record<string, string>;
|
|
118
|
-
};
|
|
119
|
-
const newDistPackageJson = { ...distPackageJson, version: nextVersion };
|
|
120
|
-
await workspace.writeJson(`dist/pkgs/${library}/package.json`, newDistPackageJson);
|
|
121
|
-
}
|
|
122
|
-
const isDeployConfirmed = await confirm({
|
|
123
|
-
message: "Are you sure you want to deploy the libraries?",
|
|
124
|
-
});
|
|
125
|
-
if (!isDeployConfirmed) {
|
|
126
|
-
Logger.error("Deployment cancelled");
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
await Promise.all(
|
|
131
|
-
akanPkgs.map(async (library) => {
|
|
132
|
-
Logger.info(`Publishing ${library}@${nextVersion} to npm...`);
|
|
133
|
-
await workspace.exec(`npm publish --tag ${tag}`, { cwd: `dist/pkgs/${library}` });
|
|
134
|
-
Logger.info(`${library}@${nextVersion} is published to npm`);
|
|
135
|
-
}),
|
|
136
|
-
);
|
|
137
|
-
Logger.info("All libraries are published to npm");
|
|
138
|
-
}
|
|
139
|
-
async update(workspace: Workspace, tag: string = "latest") {
|
|
140
|
-
if (!(await workspace.exists("package.json")))
|
|
141
|
-
await workspace.spawn("npm", ["update", "-g", "akanjs", "--latest", `--tag=${tag}`]);
|
|
142
|
-
else
|
|
143
|
-
await Promise.all([
|
|
144
|
-
workspace.spawn("npm", ["update", "-g", "akanjs", "--latest", `--tag=${tag}`]),
|
|
145
|
-
this.#updateAkanPkgs(workspace, tag),
|
|
146
|
-
]);
|
|
147
|
-
}
|
|
148
|
-
async #updateAkanPkgs(workspace: Workspace, tag: string = "latest") {
|
|
149
|
-
const latestPublishedVersion = await getLatestPackageVersion("akanjs", tag);
|
|
150
|
-
const rootPackageJson = await workspace.getPackageJson();
|
|
151
|
-
if (!rootPackageJson.dependencies) throw new Error("No dependencies found in package.json");
|
|
152
|
-
if (rootPackageJson.dependencies.akanjs) rootPackageJson.dependencies.akanjs = latestPublishedVersion;
|
|
153
|
-
if (rootPackageJson.devDependencies?.akanjs) rootPackageJson.devDependencies.akanjs = latestPublishedVersion;
|
|
154
|
-
workspace.setPackageJson(rootPackageJson);
|
|
155
|
-
await workspace.spawn("bun", ["install"]);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { Logger } from "akanjs/common";
|
|
2
|
-
import { AiSession, PkgExecutor, script, type Workspace } from "akanjs/devkit";
|
|
3
|
-
import { ApplicationScript } from "../application/application.script";
|
|
4
|
-
import { PackageScript } from "../package/package.script";
|
|
5
|
-
import { CloudRunner } from "./cloud.runner";
|
|
6
|
-
|
|
7
|
-
export class CloudScript extends script("cloud", [CloudRunner, ApplicationScript, PackageScript]) {
|
|
8
|
-
async login(workspace: Workspace) {
|
|
9
|
-
await this.cloudRunner.login();
|
|
10
|
-
}
|
|
11
|
-
async logout(workspace: Workspace) {
|
|
12
|
-
await this.cloudRunner.logout();
|
|
13
|
-
}
|
|
14
|
-
async setLlm(workspace: Workspace) {
|
|
15
|
-
await this.cloudRunner.setLlm();
|
|
16
|
-
}
|
|
17
|
-
resetLlm(workspace: Workspace) {
|
|
18
|
-
this.cloudRunner.resetLlm();
|
|
19
|
-
}
|
|
20
|
-
async ask(question: string, workspace: Workspace) {
|
|
21
|
-
const session = new AiSession("general", { workspace, isContinued: true });
|
|
22
|
-
await session.ask(question);
|
|
23
|
-
}
|
|
24
|
-
async deployAkan(workspace: Workspace, { test = true }: { test?: boolean } = {}) {
|
|
25
|
-
const akanPkgs = await this.cloudRunner.getAkanPkgs(workspace);
|
|
26
|
-
await this.packageScript.updateWorskpaceRootPackageJson(workspace);
|
|
27
|
-
const pkgs = akanPkgs.map((pkgName) => PkgExecutor.from(workspace, pkgName));
|
|
28
|
-
if (test) for (const pkg of pkgs) if (pkg.name !== "@akanjs/test") await this.applicationScript.test(pkg);
|
|
29
|
-
for (const pkg of pkgs) await this.packageScript.buildPackage(pkg);
|
|
30
|
-
|
|
31
|
-
await this.cloudRunner.deployAkan(workspace, akanPkgs);
|
|
32
|
-
}
|
|
33
|
-
async update(workspace: Workspace, tag: string = "latest") {
|
|
34
|
-
const spinner = workspace.spinning("Updating Akan.js packages and CLI...");
|
|
35
|
-
await this.cloudRunner.update(workspace, tag);
|
|
36
|
-
spinner.succeed("Akan.js packages and CLI updated, global version is below");
|
|
37
|
-
Logger.raw("> Akan version: ");
|
|
38
|
-
await workspace.spawn("akan", ["--version"], { stdio: "inherit" });
|
|
39
|
-
}
|
|
40
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { command, Workspace } from "akanjs/devkit";
|
|
2
|
-
|
|
3
|
-
import { GuidelineScript } from "./guideline.script";
|
|
4
|
-
|
|
5
|
-
export class GuidelineCommand extends command("guideline", [GuidelineScript], ({ public: target }) => ({
|
|
6
|
-
generateInstruction: target({ devOnly: true, desc: "Generate AI development guideline/instruction for your project" })
|
|
7
|
-
.arg("name", String, { ask: "name of the instruction", nullable: true })
|
|
8
|
-
.with(Workspace)
|
|
9
|
-
.exec(async function (name, workspace) {
|
|
10
|
-
await this.guidelineScript.generateInstruction(workspace, name);
|
|
11
|
-
}),
|
|
12
|
-
updateInstruction: target({ devOnly: true, desc: "Update existing AI guideline/instruction" })
|
|
13
|
-
.arg("name", String, { ask: "name of the instruction", nullable: true })
|
|
14
|
-
.option("request", String, { ask: "What do you want to update?" })
|
|
15
|
-
.with(Workspace)
|
|
16
|
-
.exec(async function (name, request, workspace) {
|
|
17
|
-
await this.guidelineScript.updateInstruction(workspace, name, request);
|
|
18
|
-
}),
|
|
19
|
-
generateDocument: target({ devOnly: true, desc: "Generate documentation from guideline/instruction" })
|
|
20
|
-
.arg("name", String, { ask: "name of the instruction", nullable: true })
|
|
21
|
-
.with(Workspace)
|
|
22
|
-
.exec(async function (name, workspace) {
|
|
23
|
-
await this.guidelineScript.generateDocument(workspace, name);
|
|
24
|
-
}),
|
|
25
|
-
reapplyInstruction: target({ devOnly: true, desc: "Re-apply guideline/instruction to codebase" })
|
|
26
|
-
.arg("name", String, { ask: "name of the instruction", nullable: true })
|
|
27
|
-
.with(Workspace)
|
|
28
|
-
.exec(async function (name, workspace) {
|
|
29
|
-
await this.guidelineScript.reapplyInstruction(workspace, name);
|
|
30
|
-
}),
|
|
31
|
-
})) {}
|