@stacksjs/actions 0.62.0 → 0.63.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.
Files changed (99) hide show
  1. package/dist/add.js +3 -0
  2. package/dist/add.js.map +10 -0
  3. package/dist/build/component-libs.js +3 -0
  4. package/dist/build/component-libs.js.map +10 -0
  5. package/dist/build/core.js +3 -0
  6. package/dist/build/core.js.map +10 -0
  7. package/dist/build/stacks.js +3 -0
  8. package/dist/build/stacks.js.map +10 -0
  9. package/dist/build.js +6 -4
  10. package/dist/build.js.map +14 -0
  11. package/dist/bump.js +7 -4
  12. package/dist/bump.js.map +10 -0
  13. package/dist/changelog.js +3 -0
  14. package/dist/changelog.js.map +10 -0
  15. package/dist/clean.js +3 -0
  16. package/dist/clean.js.map +10 -0
  17. package/dist/commit.js +3 -0
  18. package/dist/commit.js.map +10 -0
  19. package/dist/copy-types.js +3 -0
  20. package/dist/copy-types.js.map +10 -0
  21. package/dist/database/seed.js +3 -0
  22. package/dist/database/seed.js.map +10 -0
  23. package/dist/deploy/index.js +14 -5
  24. package/dist/deploy/index.js.map +10 -0
  25. package/dist/dev/components.js +3 -0
  26. package/dist/dev/components.js.map +10 -0
  27. package/dist/dev/docs.js +3 -0
  28. package/dist/dev/docs.js.map +10 -0
  29. package/dist/dev/index.js +4 -2
  30. package/dist/dev/index.js.map +11 -0
  31. package/dist/examples.js +3 -0
  32. package/dist/examples.js.map +10 -0
  33. package/dist/fresh.js +3 -0
  34. package/dist/fresh.js.map +10 -0
  35. package/dist/generate/component-meta.js +3 -0
  36. package/dist/generate/component-meta.js.map +11 -0
  37. package/dist/generate/ide-helpers.js +5 -2
  38. package/dist/generate/ide-helpers.js.map +12 -0
  39. package/dist/generate/index.js +6 -4
  40. package/dist/generate/index.js.map +13 -0
  41. package/dist/generate/lib-entries.js +3 -0
  42. package/dist/generate/lib-entries.js.map +12 -0
  43. package/dist/generate/vscode-custom-data.js +5 -2
  44. package/dist/generate/vscode-custom-data.js.map +12 -0
  45. package/dist/helpers/component-meta.js +3 -0
  46. package/dist/helpers/component-meta.js.map +10 -0
  47. package/dist/helpers/lib-entries.js +3 -0
  48. package/dist/helpers/lib-entries.js.map +11 -0
  49. package/dist/helpers/package-json.js +3 -0
  50. package/dist/helpers/package-json.js.map +11 -0
  51. package/dist/helpers/utils.js +4 -2
  52. package/dist/helpers/utils.js.map +10 -0
  53. package/dist/helpers/vscode-custom-data.js +5 -2
  54. package/dist/helpers/vscode-custom-data.js.map +11 -0
  55. package/dist/index.js +21 -5
  56. package/dist/index.js.map +18 -0
  57. package/dist/key-generate.js +3 -0
  58. package/dist/key-generate.js.map +10 -0
  59. package/dist/lint/fix.js +3 -0
  60. package/dist/lint/fix.js.map +10 -0
  61. package/dist/lint/index.js +3 -0
  62. package/dist/lint/index.js.map +10 -0
  63. package/dist/make.js +3 -0
  64. package/dist/make.js.map +10 -0
  65. package/dist/prepublish.js +3 -0
  66. package/dist/prepublish.js.map +10 -0
  67. package/dist/release.js +21 -5
  68. package/dist/release.js.map +19 -0
  69. package/dist/test/coverage.js +3 -0
  70. package/dist/test/coverage.js.map +10 -0
  71. package/dist/test/feature.js +3 -0
  72. package/dist/test/feature.js.map +10 -0
  73. package/dist/test/ui.js +3 -0
  74. package/dist/test/ui.js.map +10 -0
  75. package/dist/test/unit.js +3 -0
  76. package/dist/test/unit.js.map +10 -0
  77. package/dist/test.js +3 -0
  78. package/dist/test.js.map +10 -0
  79. package/dist/typecheck.js +3 -0
  80. package/dist/typecheck.js.map +10 -0
  81. package/dist/types.js +3 -0
  82. package/dist/types.js.map +10 -0
  83. package/dist/upgrade/dependencies.js +3 -0
  84. package/dist/upgrade/dependencies.js.map +9 -0
  85. package/dist/upgrade/framework.js +3 -0
  86. package/dist/upgrade/framework.js.map +9 -0
  87. package/dist/upgrade/index.js +4 -2
  88. package/dist/upgrade/index.js.map +11 -0
  89. package/dist/upgrade.js +4 -1
  90. package/dist/upgrade.js.map +10 -0
  91. package/package.json +3 -3
  92. package/src/action.ts +15 -1
  93. package/src/build/server.ts +1 -1
  94. package/src/bump.ts +5 -5
  95. package/src/cdn/invalidate-cache.ts +1 -1
  96. package/src/deploy/index.ts +14 -6
  97. package/src/files/watch.ts +8 -0
  98. package/src/helpers/utils.ts +2 -3
  99. package/src/orm/generate-model.ts +384 -144
package/dist/make.js CHANGED
@@ -317,3 +317,6 @@ export {
317
317
  createComponent,
318
318
  createAction
319
319
  };
320
+
321
+ //# debugId=EFDBE38FFCDD617864756E2164756E21
322
+ //# sourceMappingURL=make.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/make.ts"],
4
+ "sourcesContent": [
5
+ "import process from 'node:process'\nimport { italic } from '@stacksjs/cli'\nimport { log } from '@stacksjs/logging'\nimport { frameworkPath, path as p, projectPath, resolve } from '@stacksjs/path'\nimport { createFolder, doesFolderExist, writeTextFile } from '@stacksjs/storage'\nimport type { MakeOptions } from '@stacksjs/types'\n\nexport async function invoke(options: MakeOptions) {\n if (options.component) await makeComponent(options)\n if (options.database) makeDatabase(options)\n if (options.function) await makeFunction(options)\n if (options.language) await makeLanguage(options)\n\n // if (options.migration)\n // await migration(options)\n\n if (options.notification) await makeNotification(options)\n if (options.page) await makePage(options)\n if (options.stack) makeStack(options)\n}\n\nexport async function make(options: MakeOptions) {\n return invoke(options)\n}\n\nexport async function makeAction(options: MakeOptions) {\n try {\n const name = options.name\n log.info('Creating your action...')\n await createAction(options)\n log.success(`Created ${italic(name)} action`)\n } catch (error) {\n log.error('There was an error creating your action', error)\n process.exit()\n }\n}\n\nexport async function makeComponent(options: MakeOptions) {\n try {\n const name = options.name\n log.info('Creating your component...')\n await createComponent(options)\n log.success(`Created ${italic(name)} component`)\n } catch (error) {\n log.error('There was an error creating your component', error)\n process.exit()\n }\n}\n\nexport async function createAction(options: MakeOptions) {\n const name = options.name\n await writeTextFile({\n path: p.userActionsPath(`${name}.ts`),\n data: `import { Action } from '@stacksjs/actions'\n\nexport default new Action({\n name: '${name}',\n description: '${name} action',\n\n handle() {\n return 'Hello World action'\n },\n})\n`,\n })\n}\n\nexport async function createComponent(options: MakeOptions) {\n const name = options.name\n await writeTextFile({\n path: p.userComponentsPath(`${name}.stx`),\n data: `<script setup lang=\"ts\">\nconsole.log('Hello World component created')\n</script>\n\n<template>\n <div>\n Some HTML block\n </div>\n</template>\n`,\n })\n}\n\nexport function makeDatabase(options: MakeOptions) {\n try {\n const name = options.name\n log.info(`Creating your ${italic(name)} database...`)\n createDatabase(options)\n log.success(`Created ${italic(name)} database`)\n } catch (error) {\n log.error('There was an error creating your database', error)\n process.exit()\n }\n}\n\nexport function createDatabase(options: MakeOptions) {\n console.log('createDatabase options', options) // wip\n}\n\nexport function factory(options: MakeOptions) {\n try {\n const name = options.name\n log.info(`Creating your ${italic(name)} factory...`)\n createDatabase(options)\n log.success(`Created ${italic(name)} factory`)\n } catch (error) {\n log.error('There was an error creating your factory', error)\n process.exit()\n }\n}\n\nexport function createFactory(options: MakeOptions) {\n console.log('options', options) // wip\n}\n\nexport async function makeNotification(options: MakeOptions) {\n try {\n const name = options.name\n log.info(`Creating your ${italic(name)} notification...`)\n await createNotification(options)\n log.success(`Created ${italic(name)} notification`)\n } catch (error) {\n log.error('There was an error creating your notification', error)\n process.exit()\n }\n}\n\nexport async function makePage(options: MakeOptions) {\n try {\n const name = options.name\n log.info('Creating your page...')\n await createPage(options)\n log.success(`Created ${name} page`)\n } catch (error) {\n log.error('There was an error creating your page', error)\n process.exit()\n }\n}\n\nexport async function createPage(options: MakeOptions) {\n const name = options.name\n await writeTextFile({\n path: p.userViewsPath(`${name}.stx`),\n data: `<script setup lang=\"ts\">\nconsole.log('Hello World page created')\n</script>\n\n<template>\n <div>\n Visit http://127.0.0.1/${name}\n </div>\n</template>\n`,\n })\n}\n\nexport async function makeFunction(options: MakeOptions) {\n try {\n const name = options.name\n log.info('Creating your function...')\n await createFunction(options)\n log.success(`Created ${name} function`)\n } catch (error) {\n log.error('There was an error creating your function', error)\n process.exit()\n }\n}\n\nexport async function createFunction(options: MakeOptions) {\n const name = options.name\n await writeTextFile({\n path: p.userFunctionsPath(`${name}.ts`),\n data: `// reactive state\nconst ${name} = ref(0)\n\n// functions that mutate state and trigger updates\nfunction increment() {\n ${name}.value++\n}\n\nexport {\n ${name},\n increment,\n}\n`,\n })\n}\n\nexport async function makeLanguage(options: MakeOptions) {\n try {\n const name = options.name\n log.info('Creating your translation file...')\n await createLanguage(options)\n log.success(`Created ${name} translation file`)\n } catch (error) {\n log.error('There was an error creating your language.', error)\n process.exit()\n }\n}\n\nexport async function createLanguage(options: MakeOptions) {\n const name = options.name\n await writeTextFile({\n path: p.resourcesPath(`lang/${name}.yml`),\n data: `button:\n text: Copy\n`,\n })\n}\n\nexport function makeStack(options: MakeOptions) {\n try {\n const name = options.name\n log.info(`Creating your ${name} stack...`)\n const path = resolve(process.cwd(), name)\n\n // await spawn(`giget stacks ${path}`)\n log.success('Successfully scaffolded your project')\n log.info(`cd ${path} && bun install`)\n } catch (error) {\n log.error('There was an error creating your stack', error)\n process.exit()\n }\n}\n\nexport async function createNotification(options: MakeOptions) {\n const name = options.name\n try {\n let importOption = 'EmailOptions'\n\n if (!doesFolderExist('notifications')) await createFolder('./notifications')\n\n if (options.chat) importOption = 'ChatOptions'\n\n if (options.sms) importOption = 'SMSOptions'\n\n await writeTextFile({\n path: p.userNotificationsPath(`${name}.ts`),\n data: `import type { ${importOption} } from \\'@stacksjs/types\\'\n\nfunction content(): string {\n return 'example'\n}\n\nfunction send(): ${importOption} {\n return {\n content: content(),\n }\n}`,\n })\n\n return true\n } catch (error) {\n return false\n }\n}\n\nexport async function createMigration(options: MakeOptions) {\n const optionName = options.name\n // const table = options.tableName\n const table = 'dummy-name'\n\n if (!optionName[0]) throw new Error('options.name is required and cannot be empty')\n\n const name = optionName[0].toUpperCase() + optionName.slice(1)\n const path = frameworkPath(`database/migrations/${name}.ts`)\n\n try {\n await writeTextFile({\n path: `${path}`,\n data: `import { Kysely } from 'kysely'\n\nexport async function up(db: Kysely<any>): Promise<void> {\n await db.schema\n .createTable('${table}')\n .addColumn('id', 'integer', col => col.autoIncrement().primaryKey())\n .execute()\n}`,\n })\n\n log.success(`Successfully created your migration file at stacks/database/migrations/${name}.ts`)\n } catch (error: any) {\n log.error(error)\n }\n}\n\nexport async function createModel(options: MakeOptions) {\n const optionName = options.name\n\n if (!optionName[0]) throw new Error('options.name is required and cannot be empty')\n\n const name = optionName[0].toUpperCase() + optionName.slice(1)\n const path = p.userModelsPath(`${name}.ts`)\n\n try {\n await writeTextFile({\n path: `${path}`,\n data: `import { faker } from '@stacksjs/faker'\nimport { schema } from '@stacksjs/validation'\nimport type { Model } from '@stacksjs/types'\n\nexport default {\n name: '${name}',\n\n traits: {\n useTimestamps: true,\n\n useSeeder: {\n count: 10,\n },\n },\n\n attributes: {\n // your attributes here\n },\n} satisfies Model`,\n })\n\n log.success(`Model created: ${italic(`app/Models/${name}.ts`)}`)\n } catch (error: any) {\n log.error(error)\n }\n}\n"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "EFDBE38FFCDD617864756E2164756E21",
9
+ "names": []
10
+ }
@@ -15,3 +15,6 @@ if (result.isErr()) {
15
15
  process.exit();
16
16
  }
17
17
  log.success("Prepublishing completed");
18
+
19
+ //# debugId=AC296A15ED9BF26764756E2164756E21
20
+ //# sourceMappingURL=prepublish.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/prepublish.ts"],
4
+ "sourcesContent": [
5
+ "import process from 'node:process'\nimport { NpmScript } from '@stacksjs/enums'\nimport { log } from '@stacksjs/logging'\nimport { runtimePath } from '@stacksjs/path'\nimport { runNpmScript } from '@stacksjs/utils'\n\nlog.info('Running prepublish command...')\n\n// right before we publish, we need to build Stacks\nconst result = await runNpmScript(NpmScript.BuildStacks, {\n verbose: true,\n cwd: runtimePath(),\n})\n\nif (result.isErr()) {\n log.error(new Error('There was an error while prepublishing your stack'), result.error)\n process.exit()\n}\n\nlog.success('Prepublishing completed')\n"
6
+ ],
7
+ "mappings": ";;AAAA;AACA;AACA;AACA;AACA;AAEA,IAAI,KAAK,+BAA+B;AAGxC,IAAM,SAAS,MAAM,aAAa,UAAU,aAAa;AAAA,EACvD,SAAS;AAAA,EACT,KAAK,YAAY;AACnB,CAAC;AAED,IAAI,OAAO,MAAM,GAAG;AAClB,MAAI,MAAM,IAAI,MAAM,mDAAmD,GAAG,OAAO,KAAK;AACtF,UAAQ,KAAK;AACf;AAEA,IAAI,QAAQ,yBAAyB;",
8
+ "debugId": "AC296A15ED9BF26764756E2164756E21",
9
+ "names": []
10
+ }
package/dist/release.js CHANGED
@@ -7,9 +7,8 @@ import {err} from "@stacksjs/error-handling";
7
7
  import {log} from "@stacksjs/logging";
8
8
  import * as p from "@stacksjs/path";
9
9
  import {glob} from "@stacksjs/storage";
10
- var {Glob } = globalThis.Bun;
11
10
  async function runAction(action, options) {
12
- const glob2 = new Glob("**/*.ts");
11
+ const glob2 = new Bun.Glob("**/*.ts");
13
12
  const scanOptions = { cwd: p.userActionsPath(), onlyFiles: true };
14
13
  for await (const file of glob2.scan(scanOptions)) {
15
14
  log.debug("file", file);
@@ -177,14 +176,14 @@ async function generateWebTypes() {
177
176
  log3.info("Generating web-types.json...");
178
177
  log3.info("This feature is not yet implemented.");
179
178
  }
180
- var generateComponentInfoData = function() {
179
+ function generateComponentInfoData() {
181
180
  const componentsData = JSON.stringify(library_default.vueComponents?.tags);
182
181
  return `{
183
182
  "version": 1.1,
184
183
  "tags": ${componentsData}
185
184
  }
186
185
  `;
187
- };
186
+ }
188
187
 
189
188
  // src/generate/index.ts
190
189
  import process from "process";
@@ -620,8 +619,21 @@ class Action3 {
620
619
  path;
621
620
  method;
622
621
  validations;
622
+ requestFile;
623
623
  handle;
624
- constructor({ name, description, validations, handle, rate, tries, backoff, enabled, path: path4, method }) {
624
+ constructor({
625
+ name,
626
+ description,
627
+ validations,
628
+ handle,
629
+ rate,
630
+ tries,
631
+ backoff,
632
+ enabled,
633
+ path: path4,
634
+ method,
635
+ requestFile
636
+ }) {
625
637
  this.name = name;
626
638
  this.description = description;
627
639
  this.validations = validations;
@@ -632,6 +644,7 @@ class Action3 {
632
644
  this.path = path4;
633
645
  this.method = method;
634
646
  this.handle = handle;
647
+ this.requestFile = requestFile;
635
648
  }
636
649
  }
637
650
  // src/release.ts
@@ -648,3 +661,6 @@ await runActions([
648
661
  stdin: "inherit"
649
662
  });
650
663
  log7.success(`Successfully released ${app.name}`);
664
+
665
+ //# debugId=B32899C532B0775B64756E2164756E21
666
+ //# sourceMappingURL=release.js.map
@@ -0,0 +1,19 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/helpers/utils.ts", "../src/dev/index.ts", "../src/helpers/vscode-custom-data.ts", "../../../../../config/library.ts", "../src/generate/index.ts", "../src/add.ts", "../src/commit.ts", "../src/make.ts", "../src/action.ts", "../src/release.ts"],
4
+ "sourcesContent": [
5
+ "import type { Action as ActionType } from '@stacksjs/actions'\nimport { buddyOptions, runCommand, runCommands } from '@stacksjs/cli'\nimport { err } from '@stacksjs/error-handling'\nimport { log } from '@stacksjs/logging'\nimport * as p from '@stacksjs/path'\nimport { glob } from '@stacksjs/storage'\nimport type { ActionOptions } from '@stacksjs/types'\n\ntype ActionPath = string // TODO: narrow this by automating its generation\ntype ActionName = string // TODO: narrow this by automating its generation\ntype Action = ActionPath | ActionName | string\n\n/**\n * Run an Action the Stacks way.\n *\n * @param action The action to invoke.\n * @param options The options to pass to the command.\n * @returns The result of the command.\n */\nexport async function runAction(action: Action, options?: ActionOptions) {\n // check if action is a file anywhere in ./app/Actions/**/*.ts\n // if it is, return and await the action\n const glob = new Bun.Glob('**/*.ts')\n const scanOptions = { cwd: p.userActionsPath(), onlyFiles: true }\n\n for await (const file of glob.scan(scanOptions)) {\n log.debug('file', file)\n if (file === `${action}.ts` || file.endsWith(`${action}.ts`))\n return ((await import(/* @vite-ignore */ p.userActionsPath(file))).default as ActionType).handle()\n\n // if a custom model name is used, we need to check for it\n const a = await import(/* @vite-ignore */ p.userActionsPath(file))\n if (a.name === action) return await a.handle()\n }\n\n // or else, just run the action normally by assuming the action is core Action, stored in p.actionsPath\n const opts = buddyOptions()\n const path = p.relativeActionsPath(`src/${action}.ts`)\n const cmd = `bun --bun ${path} ${opts}`.trimEnd()\n const optionsWithCwd = {\n cwd: options?.cwd || p.projectPath(),\n ...options,\n }\n\n log.debug('runAction:', cmd)\n log.debug('action options:', optionsWithCwd)\n\n return await runCommand(cmd, optionsWithCwd)\n}\n\n/**\n * Run Actions the Stacks way.\n *\n * @param actions The actions to invoke.\n * @param options The options to pass to the command.\n * @returns The result of the command.\n */\nexport async function runActions(actions: Action[], options?: ActionOptions) {\n log.debug('runActions:', actions, options)\n\n if (!actions.length) return err('No actions were specified')\n\n for (const action of actions) {\n log.debug(`running action \"${action}\"`)\n if (!hasAction(action)) return err(`The specified action \"${action}\" does not exist`)\n }\n\n const opts = buddyOptions()\n\n const o = {\n cwd: options?.cwd || p.projectPath(),\n ...options,\n }\n\n const commands = actions.map((action) => `bun --bun ${p.relativeActionsPath(`src/${action}.ts`)} ${opts}`)\n\n log.debug('commands:', commands)\n\n return await runCommands(commands, o)\n}\n\n// looks in most common locations\nexport function hasAction(action: Action) {\n // Define patterns specifically for user actions\n const userActionPatterns = [\n `${action}.ts`,\n `${action}`,\n `Dashboard/${action}.ts`,\n `Dashboard/${action}`,\n `Buddy/${action}.ts`,\n `Buddy/${action}`,\n ]\n\n // Define patterns specifically for core actions\n const actionPatterns = [`src/${action}.ts`, `src/${action}`, `${action}.ts`, `${action}`]\n\n // Check user actions path with its specific patterns\n const userActionFiles = glob.sync(userActionPatterns.map((pattern) => p.userActionsPath(pattern)))\n\n // Check actions path with its specific patterns\n const actionFiles = glob.sync(actionPatterns.map((pattern) => p.actionsPath(pattern)))\n\n return userActionFiles.length > 0 || actionFiles.length > 0\n\n // TODO: need to loop through all user actions and check whether the name is a valid action name match\n\n // return false\n}\n",
6
+ "import { Action } from '@stacksjs/enums'\nimport { log } from '@stacksjs/logging'\nimport type { DevOptions } from '@stacksjs/types'\nimport { runAction } from '../helpers'\n\nexport async function runDevServer(options: DevOptions) {\n log.info('Starting your Frontend Engine...')\n await runAction(Action.Dev, options)\n}\n\nexport async function runFrontendDevServer(options: DevOptions) {\n log.info('Starting your UI Engine...')\n await runAction(Action.Dev, options)\n}\n\nexport async function runBackendDevServer(options: DevOptions) {\n runApiDevServer(options)\n}\n\nexport async function runApiDevServer(options: DevOptions) {\n log.info('Starting your API...')\n await runAction(Action.DevApi, options)\n}\n\nexport async function runComponentsDevServer(options: DevOptions) {\n log.info('Starting your Library Engine...')\n await runAction(Action.DevComponents, options)\n}\n\nexport async function runDashboardDevServer(options: DevOptions) {\n log.info('Starting your Dashboard...')\n await runAction(Action.DevDashboard, options)\n}\n\nexport async function runSystemTrayDevServer(options: DevOptions) {\n log.info('Starting your System Tray...')\n await runAction(Action.DevSystemTray, options)\n}\n\nexport async function runDesktopDevServer(options: DevOptions) {\n log.info('Starting your Desktop Engine...')\n await runAction(Action.DevDesktop, options)\n}\n\nexport async function runDocsDevServer(options: DevOptions) {\n log.info('Starting your Docs Engine...')\n await runAction(Action.DevDocs, options)\n}\n",
7
+ "import { log } from '@stacksjs/logging'\nimport { customElementsDataPath } from '@stacksjs/path'\nimport { writeTextFile } from '@stacksjs/storage'\nimport library from '~/config/library'\n\nexport async function generateVsCodeCustomData() {\n try {\n log.info('Generating custom-elements.json...')\n // the version does not have to be set here,\n // it will be set automatically by the release script\n await writeTextFile({\n path: customElementsDataPath(),\n data: generateComponentInfoData(),\n })\n log.success('Generated custom-elements.json for IDEs.')\n } catch (err) {\n log.error('There was an error generating the custom-elements.json file.', err)\n }\n}\n\nexport async function generateWebTypes() {\n log.info('Generating web-types.json...')\n log.info('This feature is not yet implemented.')\n}\n\nfunction generateComponentInfoData() {\n const componentsData = JSON.stringify(library.vueComponents?.tags)\n\n return `{\n \"version\": 1.1,\n \"tags\": ${componentsData}\n}\n`\n}\n",
8
+ "import type { LibraryConfig } from '@stacksjs/types'\n\n/**\n * **Library Configuration**\n *\n * This configuration defines all of your library options. Because Stacks is fully-typed, you\n * may hover any of the options below and the definitions will be provided. In case you\n * have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n name: 'hello-world',\n owner: '@stacksjs', // you may or may not add the @ prefix here (it is added automatically)\n repository: 'stacksjs/stacks',\n license: 'MIT',\n author: 'Chris Breuer',\n contributors: ['Chris Breuer <chris@stacksjs.org>'],\n defaultLanguage: 'en',\n releaseable: true,\n\n vueComponents: {\n name: 'hello-world-vue',\n description: 'Your Vue component library description',\n keywords: ['component', 'library', 'vue', 'vite', 'typescript', 'javascript'],\n tags: [\n {\n name: ['HelloWorld', 'AppHelloWorld'],\n description: 'The Hello World custom element, built via this framework.',\n attributes: [\n {\n name: 'greeting',\n description: 'The greeting.',\n },\n ],\n },\n ],\n },\n\n webComponents: {\n name: 'hello-world-elements',\n description: 'Your framework agnostic web component library description.',\n keywords: ['custom-elements', 'web-components', 'library', 'framework-agnostic', 'typescript', 'javascript'],\n tags: [\n {\n name: ['HelloWorld', 'AppHelloWorld'],\n description: 'The Hello World custom element, built via this framework.',\n attributes: [\n {\n name: 'greeting',\n description: 'The greeting.',\n },\n ],\n },\n ],\n },\n\n functions: {\n name: 'hello-world-fx',\n description: 'Your function library description.',\n keywords: ['functions', 'composables', 'library', 'typescript', 'javascript'],\n shouldGenerateSourcemap: false,\n files: ['counter', 'dark'],\n },\n} satisfies LibraryConfig\n",
9
+ "import process from 'node:process'\nimport { runCommand } from '@stacksjs/cli'\nimport { Action, NpmScript } from '@stacksjs/enums'\nimport { log } from '@stacksjs/logging'\nimport { frameworkPath, projectPath } from '@stacksjs/path'\nimport type { GeneratorOptions } from '@stacksjs/types'\nimport { runNpmScript } from '@stacksjs/utils'\nimport { runAction } from '../helpers'\nimport { generateVsCodeCustomData as genVsCodeCustomData } from '../helpers/vscode-custom-data'\n\n// import { files } from '@stacksjs/storage'\n\nexport async function invoke(options?: GeneratorOptions) {\n if (options?.types) await generateTypes(options)\n else if (options?.entries) await generateLibEntries(options)\n else if (options?.webTypes) await generateWebTypes(options)\n else if (options?.customData) await generateVsCodeCustomData(options)\n else if (options?.ideHelpers) await generateIdeHelpers(options)\n else if (options?.componentMeta) await generateComponentMeta(options)\n else if (options?.coreSymlink) await generateCoreSymlink()\n}\n\nexport function generate(options: GeneratorOptions) {\n return invoke(options)\n}\n\nexport async function generateLibEntries(options: GeneratorOptions) {\n const result = await runAction(Action.GenerateLibraryEntries, {\n ...options,\n cwd: projectPath(),\n })\n\n if (result.isErr()) {\n log.error('There was an error generating your library entry points', result.error)\n process.exit()\n }\n\n log.success('Library entry points generated successfully')\n}\n\nexport async function generateWebTypes(options?: GeneratorOptions) {\n const result = await runNpmScript(NpmScript.GenerateWebTypes, options)\n\n if (result.isErr()) {\n log.error('There was an error generating the web-types.json file.', result.error)\n process.exit()\n }\n\n log.success('Successfully generated the web-types.json file')\n}\n\nexport async function generateVsCodeCustomData(options?: GeneratorOptions) {\n const result = await genVsCodeCustomData()\n\n if (result.isErr()) {\n log.error('There was an error generating the custom-elements.json file.', result.error)\n process.exit()\n }\n\n await runAction(Action.LintFix, { verbose: true }) // because the generated json file needs to be linted\n\n log.success('Successfully generated the custom-elements.json file')\n}\n\nexport async function generateIdeHelpers(options?: GeneratorOptions) {\n const result = await runNpmScript(NpmScript.GenerateIdeHelpers, options)\n\n if (result.isErr()) {\n log.error('There was an error generating IDE helpers.', result.error)\n process.exit()\n }\n\n await runAction(Action.LintFix, { verbose: true }) // the generated json file needs to be linted\n log.success('Successfully generated IDE helpers')\n}\n\nexport async function generateComponentMeta(options?: GeneratorOptions) {\n const result = await genVsCodeCustomData()\n\n if (result.isErr()) {\n log.error('There was an error generating your component meta information.', result.error)\n process.exit()\n }\n\n await runAction(Action.LintFix, { verbose: true }) // the generated json file needs to be linted\n log.success('Successfully generated component meta information')\n}\n\nexport async function generateTypes(options?: GeneratorOptions) {\n const result = await runNpmScript(NpmScript.GenerateTypes, {\n cwd: frameworkPath(),\n ...options,\n })\n\n if (result.isErr()) {\n log.error('There was an error generating your types.', result.error)\n process.exit()\n }\n\n log.success('Types were generated successfully')\n}\n\nexport function generatePkgxConfig() {\n // write the yaml string to a file in your project root\n // files.put(projectPath('./pkgx.yaml'), yamlStr)\n\n log.success('Successfully generated `./pkgx.yaml` based on your config')\n}\n\nexport async function generateSeeder() {\n // await seed()\n}\n\nexport async function generateCoreSymlink() {\n await runCommand(`ln -s ${frameworkPath()} ${projectPath('.stacks')}`)\n}\n",
10
+ "import { installPackage } from '@stacksjs/cli'\nimport type { AddOptions } from '@stacksjs/types'\n\nexport async function invoke(options: AddOptions) {\n if (options?.table) await addTable()\n\n if (options?.calendar) await addCalendar()\n}\n\nexport async function add(options: AddOptions) {\n return invoke(options)\n}\n\nexport async function addTable() {\n await installPackage('@stacksjs/table')\n}\n\nexport async function addCalendar() {\n await installPackage('@stacksjs/calendar')\n}\n\nexport async function installPackages(names: string[]) {\n for (const name of names) await installPackage(name)\n}\n",
11
+ "import { NpmScript } from '@stacksjs/enums'\nimport { log } from '@stacksjs/logging'\nimport type { CleanOptions } from '@stacksjs/types'\nimport { runNpmScript } from '@stacksjs/utils'\n\nexport async function invoke(options: CleanOptions) {\n log.info('Committing...')\n await runNpmScript(NpmScript.Commit, options)\n log.success('Committed')\n}\n\nexport async function commit(options: CleanOptions) {\n return invoke(options)\n}\n",
12
+ "import process from 'node:process'\nimport { italic } from '@stacksjs/cli'\nimport { log } from '@stacksjs/logging'\nimport { frameworkPath, path as p, projectPath, resolve } from '@stacksjs/path'\nimport { createFolder, doesFolderExist, writeTextFile } from '@stacksjs/storage'\nimport type { MakeOptions } from '@stacksjs/types'\n\nexport async function invoke(options: MakeOptions) {\n if (options.component) await makeComponent(options)\n if (options.database) makeDatabase(options)\n if (options.function) await makeFunction(options)\n if (options.language) await makeLanguage(options)\n\n // if (options.migration)\n // await migration(options)\n\n if (options.notification) await makeNotification(options)\n if (options.page) await makePage(options)\n if (options.stack) makeStack(options)\n}\n\nexport async function make(options: MakeOptions) {\n return invoke(options)\n}\n\nexport async function makeAction(options: MakeOptions) {\n try {\n const name = options.name\n log.info('Creating your action...')\n await createAction(options)\n log.success(`Created ${italic(name)} action`)\n } catch (error) {\n log.error('There was an error creating your action', error)\n process.exit()\n }\n}\n\nexport async function makeComponent(options: MakeOptions) {\n try {\n const name = options.name\n log.info('Creating your component...')\n await createComponent(options)\n log.success(`Created ${italic(name)} component`)\n } catch (error) {\n log.error('There was an error creating your component', error)\n process.exit()\n }\n}\n\nexport async function createAction(options: MakeOptions) {\n const name = options.name\n await writeTextFile({\n path: p.userActionsPath(`${name}.ts`),\n data: `import { Action } from '@stacksjs/actions'\n\nexport default new Action({\n name: '${name}',\n description: '${name} action',\n\n handle() {\n return 'Hello World action'\n },\n})\n`,\n })\n}\n\nexport async function createComponent(options: MakeOptions) {\n const name = options.name\n await writeTextFile({\n path: p.userComponentsPath(`${name}.stx`),\n data: `<script setup lang=\"ts\">\nconsole.log('Hello World component created')\n</script>\n\n<template>\n <div>\n Some HTML block\n </div>\n</template>\n`,\n })\n}\n\nexport function makeDatabase(options: MakeOptions) {\n try {\n const name = options.name\n log.info(`Creating your ${italic(name)} database...`)\n createDatabase(options)\n log.success(`Created ${italic(name)} database`)\n } catch (error) {\n log.error('There was an error creating your database', error)\n process.exit()\n }\n}\n\nexport function createDatabase(options: MakeOptions) {\n console.log('createDatabase options', options) // wip\n}\n\nexport function factory(options: MakeOptions) {\n try {\n const name = options.name\n log.info(`Creating your ${italic(name)} factory...`)\n createDatabase(options)\n log.success(`Created ${italic(name)} factory`)\n } catch (error) {\n log.error('There was an error creating your factory', error)\n process.exit()\n }\n}\n\nexport function createFactory(options: MakeOptions) {\n console.log('options', options) // wip\n}\n\nexport async function makeNotification(options: MakeOptions) {\n try {\n const name = options.name\n log.info(`Creating your ${italic(name)} notification...`)\n await createNotification(options)\n log.success(`Created ${italic(name)} notification`)\n } catch (error) {\n log.error('There was an error creating your notification', error)\n process.exit()\n }\n}\n\nexport async function makePage(options: MakeOptions) {\n try {\n const name = options.name\n log.info('Creating your page...')\n await createPage(options)\n log.success(`Created ${name} page`)\n } catch (error) {\n log.error('There was an error creating your page', error)\n process.exit()\n }\n}\n\nexport async function createPage(options: MakeOptions) {\n const name = options.name\n await writeTextFile({\n path: p.userViewsPath(`${name}.stx`),\n data: `<script setup lang=\"ts\">\nconsole.log('Hello World page created')\n</script>\n\n<template>\n <div>\n Visit http://127.0.0.1/${name}\n </div>\n</template>\n`,\n })\n}\n\nexport async function makeFunction(options: MakeOptions) {\n try {\n const name = options.name\n log.info('Creating your function...')\n await createFunction(options)\n log.success(`Created ${name} function`)\n } catch (error) {\n log.error('There was an error creating your function', error)\n process.exit()\n }\n}\n\nexport async function createFunction(options: MakeOptions) {\n const name = options.name\n await writeTextFile({\n path: p.userFunctionsPath(`${name}.ts`),\n data: `// reactive state\nconst ${name} = ref(0)\n\n// functions that mutate state and trigger updates\nfunction increment() {\n ${name}.value++\n}\n\nexport {\n ${name},\n increment,\n}\n`,\n })\n}\n\nexport async function makeLanguage(options: MakeOptions) {\n try {\n const name = options.name\n log.info('Creating your translation file...')\n await createLanguage(options)\n log.success(`Created ${name} translation file`)\n } catch (error) {\n log.error('There was an error creating your language.', error)\n process.exit()\n }\n}\n\nexport async function createLanguage(options: MakeOptions) {\n const name = options.name\n await writeTextFile({\n path: p.resourcesPath(`lang/${name}.yml`),\n data: `button:\n text: Copy\n`,\n })\n}\n\nexport function makeStack(options: MakeOptions) {\n try {\n const name = options.name\n log.info(`Creating your ${name} stack...`)\n const path = resolve(process.cwd(), name)\n\n // await spawn(`giget stacks ${path}`)\n log.success('Successfully scaffolded your project')\n log.info(`cd ${path} && bun install`)\n } catch (error) {\n log.error('There was an error creating your stack', error)\n process.exit()\n }\n}\n\nexport async function createNotification(options: MakeOptions) {\n const name = options.name\n try {\n let importOption = 'EmailOptions'\n\n if (!doesFolderExist('notifications')) await createFolder('./notifications')\n\n if (options.chat) importOption = 'ChatOptions'\n\n if (options.sms) importOption = 'SMSOptions'\n\n await writeTextFile({\n path: p.userNotificationsPath(`${name}.ts`),\n data: `import type { ${importOption} } from \\'@stacksjs/types\\'\n\nfunction content(): string {\n return 'example'\n}\n\nfunction send(): ${importOption} {\n return {\n content: content(),\n }\n}`,\n })\n\n return true\n } catch (error) {\n return false\n }\n}\n\nexport async function createMigration(options: MakeOptions) {\n const optionName = options.name\n // const table = options.tableName\n const table = 'dummy-name'\n\n if (!optionName[0]) throw new Error('options.name is required and cannot be empty')\n\n const name = optionName[0].toUpperCase() + optionName.slice(1)\n const path = frameworkPath(`database/migrations/${name}.ts`)\n\n try {\n await writeTextFile({\n path: `${path}`,\n data: `import { Kysely } from 'kysely'\n\nexport async function up(db: Kysely<any>): Promise<void> {\n await db.schema\n .createTable('${table}')\n .addColumn('id', 'integer', col => col.autoIncrement().primaryKey())\n .execute()\n}`,\n })\n\n log.success(`Successfully created your migration file at stacks/database/migrations/${name}.ts`)\n } catch (error: any) {\n log.error(error)\n }\n}\n\nexport async function createModel(options: MakeOptions) {\n const optionName = options.name\n\n if (!optionName[0]) throw new Error('options.name is required and cannot be empty')\n\n const name = optionName[0].toUpperCase() + optionName.slice(1)\n const path = p.userModelsPath(`${name}.ts`)\n\n try {\n await writeTextFile({\n path: `${path}`,\n data: `import { faker } from '@stacksjs/faker'\nimport { schema } from '@stacksjs/validation'\nimport type { Model } from '@stacksjs/types'\n\nexport default {\n name: '${name}',\n\n traits: {\n useTimestamps: true,\n\n useSeeder: {\n count: 10,\n },\n },\n\n attributes: {\n // your attributes here\n },\n} satisfies Model`,\n })\n\n log.success(`Model created: ${italic(`app/Models/${name}.ts`)}`)\n } catch (error: any) {\n log.error(error)\n }\n}\n",
13
+ "import type { JobOptions, Nullable } from '@stacksjs/types'\nimport type { ValidationBoolean, ValidationNumber, ValidationString } from '@stacksjs/validation'\nimport type { ModelRequest } from '../../../types/requests'\n\ntype ValidationKey = string\ninterface ValidationValue {\n rule: ValidationString | ValidationNumber | ValidationBoolean | Date | Nullable<any>\n message: string\n}\n\ninterface ActionOptions {\n name?: string\n description?: string\n apiResponse?: boolean\n validations?: Record<ValidationKey, ValidationValue>\n path?: string\n method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'\n rate?: JobOptions['rate']\n tries?: JobOptions['tries']\n backoff?: JobOptions['backoff']\n enabled?: JobOptions['enabled']\n handle: (request: ModelRequest) => Promise<any> | object | string\n}\n\nexport class Action {\n name?: string\n description?: string\n rate?: ActionOptions['rate']\n tries?: ActionOptions['tries']\n backoff?: ActionOptions['backoff']\n enabled?: ActionOptions['enabled']\n path?: ActionOptions['path']\n method?: ActionOptions['method']\n validations?: Record<ValidationKey, ValidationValue>\n requestFile?: string\n handle: (request: ModelRequest) => Promise<any> | object | string\n\n constructor({\n name,\n description,\n validations,\n handle,\n rate,\n tries,\n backoff,\n enabled,\n path,\n method,\n requestFile,\n }: ActionOptions) {\n // log.debug(`Action ${name} created`) // TODO: this does not yet work because the cloud does not yet have proper file system (efs) access\n\n this.name = name\n this.description = description\n this.validations = validations\n this.rate = rate\n this.tries = tries\n this.backoff = backoff\n this.enabled = enabled\n this.path = path\n this.method = method\n this.handle = handle\n this.requestFile = requestFile\n }\n}\n",
14
+ "#!/usr/bin/env bun\nimport { app } from '@stacksjs/config'\nimport { Action } from '@stacksjs/enums'\nimport { log } from '@stacksjs/logging'\nimport { projectPath } from '@stacksjs/path'\nimport { runActions } from '.'\n\nawait runActions(\n [\n Action.GenerateLibraryEntries, // generates the package/library entry points\n Action.LintFix, // ensure there are no lint errors\n // Action.Test, // run the tests\n Action.Bump, // bump the versions, create the git tag, generate the changelog, commit & push the changes\n ],\n {\n // debug mode needs to be enabled to see the output due to the interactive prompts\n cwd: projectPath(),\n stdin: 'inherit',\n },\n)\n\nlog.success(`Successfully released ${app.name}`)\n"
15
+ ],
16
+ "mappings": "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",
17
+ "debugId": "B32899C532B0775B64756E2164756E21",
18
+ "names": []
19
+ }
@@ -7,3 +7,6 @@ await runCommand(NpmScript.TestCoverage, {
7
7
  cwd: frameworkPath(),
8
8
  verbose: true
9
9
  });
10
+
11
+ //# debugId=E752C1EFFD25119E64756E2164756E21
12
+ //# sourceMappingURL=coverage.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/test/coverage.ts"],
4
+ "sourcesContent": [
5
+ "import { runCommand } from '@stacksjs/cli'\nimport { NpmScript } from '@stacksjs/enums'\nimport { frameworkPath } from '@stacksjs/path'\n\nawait runCommand(NpmScript.TestCoverage, {\n cwd: frameworkPath(),\n verbose: true,\n})\n"
6
+ ],
7
+ "mappings": ";;AAAA;AACA;AACA;AAEA,MAAM,WAAW,UAAU,cAAc;AAAA,EACvC,KAAK,cAAc;AAAA,EACnB,SAAS;AACX,CAAC;",
8
+ "debugId": "E752C1EFFD25119E64756E2164756E21",
9
+ "names": []
10
+ }
@@ -7,3 +7,6 @@ await runCommand(NpmScript.TestFeature, {
7
7
  verbose: true,
8
8
  cwd: frameworkPath()
9
9
  });
10
+
11
+ //# debugId=599733C5EDFF753064756E2164756E21
12
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/test/feature.ts"],
4
+ "sourcesContent": [
5
+ "import { runCommand } from '@stacksjs/cli'\nimport { NpmScript } from '@stacksjs/enums'\nimport { frameworkPath } from '@stacksjs/path'\n\nawait runCommand(NpmScript.TestFeature, {\n verbose: true,\n cwd: frameworkPath(),\n})\n"
6
+ ],
7
+ "mappings": ";;AAAA;AACA;AACA;AAEA,MAAM,WAAW,UAAU,aAAa;AAAA,EACtC,SAAS;AAAA,EACT,KAAK,cAAc;AACrB,CAAC;",
8
+ "debugId": "599733C5EDFF753064756E2164756E21",
9
+ "names": []
10
+ }
package/dist/test/ui.js CHANGED
@@ -4,3 +4,6 @@ import {runCommand} from "@stacksjs/cli";
4
4
  import {NpmScript} from "@stacksjs/enums";
5
5
  import {frameworkPath} from "@stacksjs/path";
6
6
  await runCommand(NpmScript.TestUi, { verbose: true, cwd: frameworkPath() });
7
+
8
+ //# debugId=853D1C8B3243917164756E2164756E21
9
+ //# sourceMappingURL=ui.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/test/ui.ts"],
4
+ "sourcesContent": [
5
+ "import { runCommand } from '@stacksjs/cli'\nimport { NpmScript } from '@stacksjs/enums'\nimport { frameworkPath } from '@stacksjs/path'\n\nawait runCommand(NpmScript.TestUi, { verbose: true, cwd: frameworkPath() })\n"
6
+ ],
7
+ "mappings": ";;AAAA;AACA;AACA;AAEA,MAAM,WAAW,UAAU,QAAQ,EAAE,SAAS,MAAM,KAAK,cAAc,EAAE,CAAC;",
8
+ "debugId": "853D1C8B3243917164756E2164756E21",
9
+ "names": []
10
+ }
package/dist/test/unit.js CHANGED
@@ -4,3 +4,6 @@ import {runCommand} from "@stacksjs/cli";
4
4
  import {NpmScript} from "@stacksjs/enums";
5
5
  import {frameworkPath} from "@stacksjs/path";
6
6
  await runCommand(NpmScript.TestUnit, { verbose: true, cwd: frameworkPath() });
7
+
8
+ //# debugId=37A6F9A15082E8BD64756E2164756E21
9
+ //# sourceMappingURL=unit.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/test/unit.ts"],
4
+ "sourcesContent": [
5
+ "import { runCommand } from '@stacksjs/cli'\nimport { NpmScript } from '@stacksjs/enums'\nimport { frameworkPath } from '@stacksjs/path'\n\nawait runCommand(NpmScript.TestUnit, { verbose: true, cwd: frameworkPath() })\n"
6
+ ],
7
+ "mappings": ";;AAAA;AACA;AACA;AAEA,MAAM,WAAW,UAAU,UAAU,EAAE,SAAS,MAAM,KAAK,cAAc,EAAE,CAAC;",
8
+ "debugId": "37A6F9A15082E8BD64756E2164756E21",
9
+ "names": []
10
+ }
package/dist/test.js CHANGED
@@ -4,3 +4,6 @@ import {runCommand} from "@stacksjs/cli";
4
4
  import {NpmScript} from "@stacksjs/enums";
5
5
  import {frameworkPath} from "@stacksjs/path";
6
6
  await runCommand(NpmScript.Test, { verbose: true, cwd: frameworkPath() });
7
+
8
+ //# debugId=6968D7AAF8EFEA7F64756E2164756E21
9
+ //# sourceMappingURL=test.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/test.ts"],
4
+ "sourcesContent": [
5
+ "import { runCommand } from '@stacksjs/cli'\nimport { NpmScript } from '@stacksjs/enums'\nimport { frameworkPath } from '@stacksjs/path'\n\nawait runCommand(NpmScript.Test, { verbose: true, cwd: frameworkPath() })\n"
6
+ ],
7
+ "mappings": ";;AAAA;AACA;AACA;AAEA,MAAM,WAAW,UAAU,MAAM,EAAE,SAAS,MAAM,KAAK,cAAc,EAAE,CAAC;",
8
+ "debugId": "6968D7AAF8EFEA7F64756E2164756E21",
9
+ "names": []
10
+ }
package/dist/typecheck.js CHANGED
@@ -4,3 +4,6 @@ import {runCommands} from "@stacksjs/cli";
4
4
  import {NpmScript} from "@stacksjs/enums";
5
5
  import {projectPath} from "@stacksjs/path";
6
6
  await runCommands([NpmScript.TestTypes], { cwd: projectPath() });
7
+
8
+ //# debugId=B88E13141B45B6DA64756E2164756E21
9
+ //# sourceMappingURL=typecheck.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/typecheck.ts"],
4
+ "sourcesContent": [
5
+ "import { runCommands } from '@stacksjs/cli'\nimport { NpmScript } from '@stacksjs/enums'\nimport { projectPath } from '@stacksjs/path'\n\nawait runCommands([NpmScript.TestTypes], { cwd: projectPath() })\n"
6
+ ],
7
+ "mappings": ";;AAAA;AACA;AACA;AAEA,MAAM,YAAY,CAAC,UAAU,SAAS,GAAG,EAAE,KAAK,YAAY,EAAE,CAAC;",
8
+ "debugId": "B88E13141B45B6DA64756E2164756E21",
9
+ "names": []
10
+ }
package/dist/types.js CHANGED
@@ -19,3 +19,6 @@ export {
19
19
  types,
20
20
  invoke
21
21
  };
22
+
23
+ //# debugId=FEFD395131FEF32A64756E2164756E21
24
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/types.ts"],
4
+ "sourcesContent": [
5
+ "import process from 'node:process'\nimport { NpmScript } from '@stacksjs/enums'\nimport { log } from '@stacksjs/logging'\nimport type { TypesOptions } from '@stacksjs/types'\nimport { runNpmScript } from '@stacksjs/utils'\n\nexport async function invoke(options?: TypesOptions) {\n const results = await runNpmScript(NpmScript.TypesFix, options)\n\n if (results.isErr()) {\n log.error('There was an error fixing your types.', results.error)\n process.exit()\n }\n\n log.success('Types are set')\n}\n\nexport async function types(options: TypesOptions) {\n return invoke(options)\n}\n"
6
+ ],
7
+ "mappings": ";;AAAA;AACA;AACA;AAEA;AAEA,eAAsB,MAAM,CAAC,SAAwB;AACnD,QAAM,UAAU,MAAM,aAAa,UAAU,UAAU,OAAO;AAE9D,MAAI,QAAQ,MAAM,GAAG;AACnB,QAAI,MAAM,yCAAyC,QAAQ,KAAK;AAChE,YAAQ,KAAK;AAAA,EACf;AAEA,MAAI,QAAQ,eAAe;AAAA;AAG7B,eAAsB,KAAK,CAAC,SAAuB;AACjD,SAAO,OAAO,OAAO;AAAA;",
8
+ "debugId": "FEFD395131FEF32A64756E2164756E21",
9
+ "names": []
10
+ }
@@ -4,3 +4,6 @@ var dependencies_default = undefined;
4
4
  export {
5
5
  dependencies_default as default
6
6
  };
7
+
8
+ //# debugId=AD1780E69A12A68E64756E2164756E21
9
+ //# sourceMappingURL=dependencies.js.map
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "AD1780E69A12A68E64756E2164756E21",
8
+ "names": []
9
+ }
@@ -1 +1,4 @@
1
1
  // @bun
2
+
3
+ //# debugId=53EE45F26BF181D864756E2164756E21
4
+ //# sourceMappingURL=framework.js.map
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "53EE45F26BF181D864756E2164756E21",
8
+ "names": []
9
+ }
@@ -5,9 +5,8 @@ import {err} from "@stacksjs/error-handling";
5
5
  import {log} from "@stacksjs/logging";
6
6
  import * as p from "@stacksjs/path";
7
7
  import {glob} from "@stacksjs/storage";
8
- var {Glob } = globalThis.Bun;
9
8
  async function runAction(action, options) {
10
- const glob2 = new Glob("**/*.ts");
9
+ const glob2 = new Bun.Glob("**/*.ts");
11
10
  const scanOptions = { cwd: p.userActionsPath(), onlyFiles: true };
12
11
  for await (const file of glob2.scan(scanOptions)) {
13
12
  log.debug("file", file);
@@ -76,3 +75,6 @@ if (options?.shell || options?.all)
76
75
  if (options?.binary || options?.all)
77
76
  await runAction(Action.UpgradeBinary, options);
78
77
  process.exit(ExitCode.InvalidArgument);
78
+
79
+ //# debugId=8AB446E85BC1175764756E2164756E21
80
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/helpers/utils.ts", "../src/upgrade/index.ts"],
4
+ "sourcesContent": [
5
+ "import type { Action as ActionType } from '@stacksjs/actions'\nimport { buddyOptions, runCommand, runCommands } from '@stacksjs/cli'\nimport { err } from '@stacksjs/error-handling'\nimport { log } from '@stacksjs/logging'\nimport * as p from '@stacksjs/path'\nimport { glob } from '@stacksjs/storage'\nimport type { ActionOptions } from '@stacksjs/types'\n\ntype ActionPath = string // TODO: narrow this by automating its generation\ntype ActionName = string // TODO: narrow this by automating its generation\ntype Action = ActionPath | ActionName | string\n\n/**\n * Run an Action the Stacks way.\n *\n * @param action The action to invoke.\n * @param options The options to pass to the command.\n * @returns The result of the command.\n */\nexport async function runAction(action: Action, options?: ActionOptions) {\n // check if action is a file anywhere in ./app/Actions/**/*.ts\n // if it is, return and await the action\n const glob = new Bun.Glob('**/*.ts')\n const scanOptions = { cwd: p.userActionsPath(), onlyFiles: true }\n\n for await (const file of glob.scan(scanOptions)) {\n log.debug('file', file)\n if (file === `${action}.ts` || file.endsWith(`${action}.ts`))\n return ((await import(/* @vite-ignore */ p.userActionsPath(file))).default as ActionType).handle()\n\n // if a custom model name is used, we need to check for it\n const a = await import(/* @vite-ignore */ p.userActionsPath(file))\n if (a.name === action) return await a.handle()\n }\n\n // or else, just run the action normally by assuming the action is core Action, stored in p.actionsPath\n const opts = buddyOptions()\n const path = p.relativeActionsPath(`src/${action}.ts`)\n const cmd = `bun --bun ${path} ${opts}`.trimEnd()\n const optionsWithCwd = {\n cwd: options?.cwd || p.projectPath(),\n ...options,\n }\n\n log.debug('runAction:', cmd)\n log.debug('action options:', optionsWithCwd)\n\n return await runCommand(cmd, optionsWithCwd)\n}\n\n/**\n * Run Actions the Stacks way.\n *\n * @param actions The actions to invoke.\n * @param options The options to pass to the command.\n * @returns The result of the command.\n */\nexport async function runActions(actions: Action[], options?: ActionOptions) {\n log.debug('runActions:', actions, options)\n\n if (!actions.length) return err('No actions were specified')\n\n for (const action of actions) {\n log.debug(`running action \"${action}\"`)\n if (!hasAction(action)) return err(`The specified action \"${action}\" does not exist`)\n }\n\n const opts = buddyOptions()\n\n const o = {\n cwd: options?.cwd || p.projectPath(),\n ...options,\n }\n\n const commands = actions.map((action) => `bun --bun ${p.relativeActionsPath(`src/${action}.ts`)} ${opts}`)\n\n log.debug('commands:', commands)\n\n return await runCommands(commands, o)\n}\n\n// looks in most common locations\nexport function hasAction(action: Action) {\n // Define patterns specifically for user actions\n const userActionPatterns = [\n `${action}.ts`,\n `${action}`,\n `Dashboard/${action}.ts`,\n `Dashboard/${action}`,\n `Buddy/${action}.ts`,\n `Buddy/${action}`,\n ]\n\n // Define patterns specifically for core actions\n const actionPatterns = [`src/${action}.ts`, `src/${action}`, `${action}.ts`, `${action}`]\n\n // Check user actions path with its specific patterns\n const userActionFiles = glob.sync(userActionPatterns.map((pattern) => p.userActionsPath(pattern)))\n\n // Check actions path with its specific patterns\n const actionFiles = glob.sync(actionPatterns.map((pattern) => p.actionsPath(pattern)))\n\n return userActionFiles.length > 0 || actionFiles.length > 0\n\n // TODO: need to loop through all user actions and check whether the name is a valid action name match\n\n // return false\n}\n",
6
+ "import process from 'node:process'\nimport { parseArgs } from '@stacksjs/cli'\nimport { Action } from '@stacksjs/enums'\nimport { ExitCode } from '@stacksjs/types'\nimport { runAction } from '../helpers'\n\nconst options: any = parseArgs()\n\n// run all the upgrade actions\n// if (options?.framework || options?.all)\n// await updateFramework(options)\n\nif (options?.dependencies || options?.all) await runAction(Action.UpgradeDeps, options)\n\nif (options?.bun || options?.all) await runAction(Action.UpgradeBun, options)\n\nif (options?.shell || options?.all) await runAction(Action.UpgradeShell, options)\n\nif (options?.binary || options?.all) await runAction(Action.UpgradeBinary, options)\n\nprocess.exit(ExitCode.InvalidArgument)\n\n// TODO: also update CI files & configurations, and other files, possibly (taze?)\n// we want this to be smart enough to update only if files that have been updated\n"
7
+ ],
8
+ "mappings": ";;AACA;AACA;AACA;AACA;AACA;AAcA,eAAsB,SAAS,CAAC,QAAgB,SAAyB;AAGvE,QAAM,QAAO,IAAI,IAAI,KAAK,SAAS;AACnC,QAAM,cAAc,EAAE,KAAO,kBAAgB,GAAG,WAAW,KAAK;AAEhE,mBAAiB,QAAQ,MAAK,KAAK,WAAW,GAAG;AAC/C,QAAI,MAAM,QAAQ,IAAI;AACtB,QAAI,SAAS,GAAG,eAAe,KAAK,SAAS,GAAG,WAAW;AACzD,cAAS,MAAgC,OAAE,kBAAgB,IAAI,IAAI,QAAuB,OAAO;AAGnG,UAAM,IAAI,MAAgC,OAAE,kBAAgB,IAAI;AAChE,QAAI,EAAE,SAAS;AAAQ,aAAO,MAAM,EAAE,OAAO;AAAA,EAC/C;AAGA,QAAM,OAAO,aAAa;AAC1B,QAAM,OAAS,sBAAoB,OAAO,WAAW;AACrD,QAAM,MAAM,aAAa,QAAQ,OAAO,QAAQ;AAChD,QAAM,iBAAiB;AAAA,IACrB,KAAK,SAAS,OAAS,cAAY;AAAA,OAChC;AAAA,EACL;AAEA,MAAI,MAAM,cAAc,GAAG;AAC3B,MAAI,MAAM,mBAAmB,cAAc;AAE3C,SAAO,MAAM,WAAW,KAAK,cAAc;AAAA;AAU7C,eAAsB,UAAU,CAAC,SAAmB,SAAyB;AAC3E,MAAI,MAAM,eAAe,SAAS,OAAO;AAEzC,OAAK,QAAQ;AAAQ,WAAO,IAAI,2BAA2B;AAE3D,aAAW,UAAU,SAAS;AAC5B,QAAI,MAAM,mBAAmB,SAAS;AACtC,SAAK,UAAU,MAAM;AAAG,aAAO,IAAI,yBAAyB,wBAAwB;AAAA,EACtF;AAEA,QAAM,OAAO,aAAa;AAE1B,QAAM,IAAI;AAAA,IACR,KAAK,SAAS,OAAS,cAAY;AAAA,OAChC;AAAA,EACL;AAEA,QAAM,WAAW,QAAQ,IAAI,CAAC,WAAW,aAAe,sBAAoB,OAAO,WAAW,KAAK,MAAM;AAEzG,MAAI,MAAM,aAAa,QAAQ;AAE/B,SAAO,MAAM,YAAY,UAAU,CAAC;AAAA;AAI/B,SAAS,SAAS,CAAC,QAAgB;AAExC,QAAM,qBAAqB;AAAA,IACzB,GAAG;AAAA,IACH,GAAG;AAAA,IACH,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAGA,QAAM,iBAAiB,CAAC,OAAO,aAAa,OAAO,UAAU,GAAG,aAAa,GAAG,QAAQ;AAGxF,QAAM,kBAAkB,KAAK,KAAK,mBAAmB,IAAI,CAAC,YAAc,kBAAgB,OAAO,CAAC,CAAC;AAGjG,QAAM,cAAc,KAAK,KAAK,eAAe,IAAI,CAAC,YAAc,cAAY,OAAO,CAAC,CAAC;AAErF,SAAO,gBAAgB,SAAS,KAAK,YAAY,SAAS;AAAA;;;ACtG5D;AACA;AACA;AACA;AAGA,IAAM,UAAe,UAAU;AAM/B,IAAI,SAAS,gBAAgB,SAAS;AAAK,QAAM,UAAU,OAAO,aAAa,OAAO;AAEtF,IAAI,SAAS,OAAO,SAAS;AAAK,QAAM,UAAU,OAAO,YAAY,OAAO;AAE5E,IAAI,SAAS,SAAS,SAAS;AAAK,QAAM,UAAU,OAAO,cAAc,OAAO;AAEhF,IAAI,SAAS,UAAU,SAAS;AAAK,QAAM,UAAU,OAAO,eAAe,OAAO;AAElF,QAAQ,KAAK,SAAS,eAAe;",
9
+ "debugId": "8AB446E85BC1175764756E2164756E21",
10
+ "names": []
11
+ }
package/dist/upgrade.js CHANGED
@@ -7,7 +7,7 @@ import {log} from "@stacksjs/logging";
7
7
  import {projectPath} from "@stacksjs/path";
8
8
  import * as storage from "@stacksjs/storage";
9
9
  // package.json
10
- var version = "0.62.0";
10
+ var version = "0.63.0";
11
11
 
12
12
  // src/upgrade.ts
13
13
  function checkForUncommittedChanges(options) {
@@ -44,3 +44,6 @@ export {
44
44
  downloadFrameworkUpdate,
45
45
  checkForUncommittedChanges
46
46
  };
47
+
48
+ //# debugId=14A80A26A02F26D364756E2164756E21
49
+ //# sourceMappingURL=upgrade.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/upgrade.ts"],
4
+ "sourcesContent": [
5
+ "import process from 'node:process'\nimport { intro, outro, runCommand } from '@stacksjs/cli'\nimport { NpmScript } from '@stacksjs/enums'\nimport { log } from '@stacksjs/logging'\nimport { projectPath } from '@stacksjs/path'\nimport * as storage from '@stacksjs/storage'\nimport type { UpgradeOptions } from '@stacksjs/types'\nimport { version } from '../package.json'\n\n// import { determineDebugLevel } from '@stacksjs/utils'\n\n// export async function checkForUncommittedChanges(path = './stacks', options: UpgradeOptions) {\nexport function checkForUncommittedChanges(options: UpgradeOptions) {\n try {\n // const stdio = determineDebugLevel(options) ? 'inherit' : 'ignore'\n // check if the stacks folder has any updates\n // https://carlosbecker.com/posts/git-changed/\n // await spawn(`git diff --quiet HEAD -- ${path}`, { stdio, cwd: projectPath() })\n } catch (error: any) {\n // if (error.status === 1) {\n // even though the ./stacks folder should not be edited, instead config values should be adjusted,\n // there is a chance that users may apply local core edits, as it’s totally acceptable, as long as\n // the user knows what they are doing. There is also a change that simply the deps within stacks\n // folder have been updated and that could produce a diff.\n // if (!options?.force) {\n // const confirmed = await log.prompt('We detected there are uncommitted in the ./stacks folder. Do you want to overwrite those?', {\n // type: 'confirm',\n // })\n // if (!confirmed) {\n // log.info('Aborted. Stacks did not update itself.')\n // log.info('Note: if you commit your changes and replay the update, you can see what changed.')\n // process.exit(ExitCode.Success)\n // }\n // }\n // }\n }\n}\n\nexport async function downloadFrameworkUpdate(options: UpgradeOptions) {\n const tempFolderName = 'updates'\n const tempUpdatePath = projectPath(tempFolderName)\n\n if (storage.doesFolderExist(tempUpdatePath)) await storage.deleteFolder(tempUpdatePath)\n\n log.info('Downloading framework updates...')\n await runCommand(`giget stacks ${tempFolderName}`, options)\n log.success(`Your framework updated correctly to version: v${version}`)\n}\n\n// export async function updateDependencies(options: UpgradeOptions) {\nexport async function updateDependencies() {\n const perf = await intro('buddy upgrade:dependencies')\n const result = await runCommand(NpmScript.UpgradeDependencies, {\n cwd: projectPath(),\n })\n\n if (result.isErr()) {\n await outro(\n 'While running the upgrade:dependencies command, there was an issue',\n { startTime: perf, useSeconds: true },\n result.error,\n )\n process.exit()\n }\n\n await outro('Freshly updated your dependencies.', {\n startTime: perf,\n useSeconds: true,\n })\n process.exit()\n}\n"
6
+ ],
7
+ "mappings": ";;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;AAOO,SAAS,0BAA0B,CAAC,SAAyB;AAClE,MAAI;AAAA,WAKK,OAAP;AAAA;AAAA;AAoBJ,eAAsB,uBAAuB,CAAC,SAAyB;AACrE,QAAM,iBAAiB;AACvB,QAAM,iBAAiB,YAAY,cAAc;AAEjD,MAAY,wBAAgB,cAAc;AAAG,UAAc,qBAAa,cAAc;AAEtF,MAAI,KAAK,kCAAkC;AAC3C,QAAM,WAAW,gBAAgB,kBAAkB,OAAO;AAC1D,MAAI,QAAQ,iDAAiD,SAAS;AAAA;AAIxE,eAAsB,kBAAkB,GAAG;AACzC,QAAM,OAAO,MAAM,MAAM,4BAA4B;AACrD,QAAM,SAAS,MAAM,WAAW,UAAU,qBAAqB;AAAA,IAC7D,KAAK,YAAY;AAAA,EACnB,CAAC;AAED,MAAI,OAAO,MAAM,GAAG;AAClB,UAAM,MACJ,sEACA,EAAE,WAAW,MAAM,YAAY,KAAK,GACpC,OAAO,KACT;AACA,YAAQ,KAAK;AAAA,EACf;AAEA,QAAM,MAAM,sCAAsC;AAAA,IAChD,WAAW;AAAA,IACX,YAAY;AAAA,EACd,CAAC;AACD,UAAQ,KAAK;AAAA;",
8
+ "debugId": "14A80A26A02F26D364756E2164756E21",
9
+ "names": []
10
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stacksjs/actions",
3
3
  "type": "module",
4
- "version": "0.62.0",
4
+ "version": "0.63.0",
5
5
  "description": "The Stacks actions.",
6
6
  "author": "Chris Breuer",
7
7
  "license": "MIT",
@@ -68,7 +68,7 @@
68
68
  "@stacksjs/utils": "latest",
69
69
  "@stacksjs/validation": "latest",
70
70
  "markdown-it": "^14.1.0",
71
- "vue-component-meta": "^2.0.26"
71
+ "vue-component-meta": "^2.0.29"
72
72
  },
73
73
  "dependencies": {
74
74
  "@stacksjs/cli": "latest",
@@ -86,7 +86,7 @@
86
86
  "@stacksjs/utils": "latest",
87
87
  "@stacksjs/validation": "latest",
88
88
  "markdown-it": "^14.1.0",
89
- "vue-component-meta": "^2.0.26"
89
+ "vue-component-meta": "^2.0.29"
90
90
  },
91
91
  "devDependencies": {
92
92
  "@stacksjs/development": "latest"
package/src/action.ts CHANGED
@@ -32,9 +32,22 @@ export class Action {
32
32
  path?: ActionOptions['path']
33
33
  method?: ActionOptions['method']
34
34
  validations?: Record<ValidationKey, ValidationValue>
35
+ requestFile?: string
35
36
  handle: (request: ModelRequest) => Promise<any> | object | string
36
37
 
37
- constructor({ name, description, validations, handle, rate, tries, backoff, enabled, path, method }: ActionOptions) {
38
+ constructor({
39
+ name,
40
+ description,
41
+ validations,
42
+ handle,
43
+ rate,
44
+ tries,
45
+ backoff,
46
+ enabled,
47
+ path,
48
+ method,
49
+ requestFile,
50
+ }: ActionOptions) {
38
51
  // log.debug(`Action ${name} created`) // TODO: this does not yet work because the cloud does not yet have proper file system (efs) access
39
52
 
40
53
  this.name = name
@@ -47,5 +60,6 @@ export class Action {
47
60
  this.path = path
48
61
  this.method = method
49
62
  this.handle = handle
63
+ this.requestFile = requestFile
50
64
  }
51
65
  }
@@ -4,6 +4,6 @@ import { $ } from 'bun'
4
4
 
5
5
  log.info('Building Server...')
6
6
 
7
- $.cwd(frameworkPath('server'))
7
+ $.cwd(frameworkPath('cloud'))
8
8
 
9
9
  await $`bun build.ts`
package/src/bump.ts CHANGED
@@ -1,14 +1,14 @@
1
- import { parseOptions, runCommand } from '@stacksjs/cli'
1
+ import { log, parseOptions, runCommand } from '@stacksjs/cli'
2
2
  import { path as p } from '@stacksjs/path'
3
3
 
4
4
  const options = parseOptions()
5
5
  const changelogCommand = options?.dryRun ? 'buddy changelog --quiet --dry-run' : 'buddy changelog --quiet'
6
6
  const bumpCommand = options?.dryRun
7
- ? `bunx bumpp ./package.json ./**/package.json ../ide/vscode/package.json --no-push --execute "../scripts/lint"`
8
- : `bunx bumpp ./package.json ./**/package.json ../ide/vscode/package.json --all --execute "../scripts/lint"`
7
+ ? `bunx bumpp ./package.json ./**/package.json ../package.json ../ide/vscode/package.json ../views/** ../cloud/package.json ../server/package.json ../orm/package.json ../docs/package.json ../api/package.json ../email/package.json ../system-tray/package.json --no-push --execute "../scripts/lint"`
8
+ : `bunx bumpp ./package.json ./**/package.json ../package.json ../ide/vscode/package.json ../views/** ../cloud/package.json ../server/package.json ../orm/package.json ../docs/package.json ../api/package.json ../email/package.json ../system-tray/package.json --all --execute "../scripts/lint"`
9
9
 
10
- console.log(`Running: ${bumpCommand}`)
11
- console.log(`In frameworkPath: ${p.frameworkPath()}`)
10
+ log.debug(`Running: ${bumpCommand}`)
11
+ log.debug(`In frameworkPath: ${p.frameworkPath()}`)
12
12
 
13
13
  await runCommand(bumpCommand, {
14
14
  cwd: p.frameworkPath('core'),
@@ -1,5 +1,5 @@
1
1
  // TODO: port over logic from meemalabs/cloudfront to invalidate cache
2
- // buddy cloud invalidate-cache --paths /index.html /about.html
2
+ // buddy cloud --invalidate-cache --paths /index.html /about.html
3
3
 
4
4
  // import { CloudFrontClient, CreateInvalidationCommand } from '@aws-sdk/client-cloudfront'
5
5