apitally 0.15.2 → 0.15.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -205,7 +205,7 @@ _Note:_ Apitally only works with H3 v2 and currently doesn't support nested apps
205
205
 
206
206
  ### AdonisJS
207
207
 
208
- You can use the built-in Ace command to configure Apitally in your AdonisJS application:
208
+ You can use the below Ace command to configure Apitally in your AdonisJS application:
209
209
 
210
210
  ```bash
211
211
  node ace configure apitally/adonisjs
@@ -216,12 +216,7 @@ This command will automatically:
216
216
  - Create a config file at `config/apitally.ts`
217
217
  - Register the Apitally provider in `adonisrc.ts`
218
218
  - Add the Apitally middleware to `start/kernel.ts`
219
- - Add environment variables to `.env` and `start/env.ts`
220
-
221
- After running the command, you'll need to:
222
-
223
- - Set your `APITALLY_CLIENT_ID` in the `.env` file
224
- - Modify your exception handler in `app/exceptions/handler.ts` to capture validation and server errors
219
+ - Add required environment variables to `.env` and `start/env.ts`
225
220
 
226
221
  For further instructions, see our
227
222
  [setup guide for AdonisJS](https://docs.apitally.io/frameworks/adonisjs).
@@ -25,9 +25,40 @@ __export(configure_exports, {
25
25
  });
26
26
  module.exports = __toCommonJS(configure_exports);
27
27
  var import_url = require("url");
28
+
29
+ // src/common/paramValidation.ts
30
+ function isValidClientId(clientId) {
31
+ const regexExp = /^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
32
+ return regexExp.test(clientId);
33
+ }
34
+ __name(isValidClientId, "isValidClientId");
35
+ function isValidEnv(env) {
36
+ const regexExp = /^[\w-]{1,32}$/;
37
+ return regexExp.test(env);
38
+ }
39
+ __name(isValidEnv, "isValidEnv");
40
+
41
+ // src/adonisjs/configure.ts
28
42
  var import_meta = {};
29
43
  var STUBS_ROOT = (0, import_url.fileURLToPath)(new URL("./stubs/", import_meta.url));
30
44
  async function configure(command) {
45
+ const clientId = await command.prompt.ask("Apitally client ID", {
46
+ result(value) {
47
+ return value.trim().toLowerCase();
48
+ },
49
+ validate(value) {
50
+ return isValidClientId(value);
51
+ }
52
+ });
53
+ const env = await command.prompt.ask("Environment name", {
54
+ default: "dev",
55
+ result(value) {
56
+ return value.trim().toLowerCase().replaceAll("_", "-").replaceAll(" ", "-");
57
+ },
58
+ validate(value) {
59
+ return isValidEnv(value);
60
+ }
61
+ });
31
62
  const codemods = await command.createCodemods();
32
63
  await codemods.makeUsingStub(STUBS_ROOT, "config/apitally.stub", {});
33
64
  await codemods.registerMiddleware("router", [
@@ -39,8 +70,8 @@ async function configure(command) {
39
70
  rcFile.addProvider("apitally/adonisjs/provider");
40
71
  });
41
72
  await codemods.defineEnvVariables({
42
- APITALLY_CLIENT_ID: "",
43
- APITALLY_ENV: "dev"
73
+ APITALLY_CLIENT_ID: clientId,
74
+ APITALLY_ENV: env
44
75
  });
45
76
  await codemods.defineEnvValidations({
46
77
  leadingComment: "Variables for configuring the apitally package",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/adonisjs/configure.ts"],"sourcesContent":["/**\n * Allows users to add Apitally to their AdonisJS application using the built-in Ace command.\n */\n\nimport type Configure from \"@adonisjs/core/commands/configure\";\nimport { fileURLToPath } from \"url\";\n\nconst STUBS_ROOT = fileURLToPath(new URL(\"./stubs/\", import.meta.url));\n\nexport async function configure(command: Configure) {\n const codemods = await command.createCodemods();\n\n await codemods.makeUsingStub(STUBS_ROOT, \"config/apitally.stub\", {});\n\n await codemods.registerMiddleware(\"router\", [\n {\n path: \"apitally/adonisjs/middleware\",\n },\n ]);\n\n await codemods.updateRcFile((rcFile: any) => {\n rcFile.addProvider(\"apitally/adonisjs/provider\");\n });\n\n await codemods.defineEnvVariables({\n APITALLY_CLIENT_ID: \"\",\n APITALLY_ENV: \"dev\",\n });\n\n await codemods.defineEnvValidations({\n leadingComment: \"Variables for configuring the apitally package\",\n variables: {\n APITALLY_CLIENT_ID: \"Env.schema.string()\",\n APITALLY_ENV: \"Env.schema.string.optional()\",\n },\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AAKA,iBAA8B;AAL9B;AAOA,IAAMA,iBAAaC,0BAAc,IAAIC,IAAI,YAAY,YAAYC,GAAG,CAAA;AAEpE,eAAsBC,UAAUC,SAAkB;AAChD,QAAMC,WAAW,MAAMD,QAAQE,eAAc;AAE7C,QAAMD,SAASE,cAAcR,YAAY,wBAAwB,CAAC,CAAA;AAElE,QAAMM,SAASG,mBAAmB,UAAU;IAC1C;MACEC,MAAM;IACR;GACD;AAED,QAAMJ,SAASK,aAAa,CAACC,WAAAA;AAC3BA,WAAOC,YAAY,4BAAA;EACrB,CAAA;AAEA,QAAMP,SAASQ,mBAAmB;IAChCC,oBAAoB;IACpBC,cAAc;EAChB,CAAA;AAEA,QAAMV,SAASW,qBAAqB;IAClCC,gBAAgB;IAChBC,WAAW;MACTJ,oBAAoB;MACpBC,cAAc;IAChB;EACF,CAAA;AACF;AA3BsBZ;","names":["STUBS_ROOT","fileURLToPath","URL","url","configure","command","codemods","createCodemods","makeUsingStub","registerMiddleware","path","updateRcFile","rcFile","addProvider","defineEnvVariables","APITALLY_CLIENT_ID","APITALLY_ENV","defineEnvValidations","leadingComment","variables"]}
1
+ {"version":3,"sources":["../../src/adonisjs/configure.ts","../../src/common/paramValidation.ts"],"sourcesContent":["/**\n * Allows users to add Apitally to their AdonisJS application using the built-in Ace command.\n */\n\nimport type Configure from \"@adonisjs/core/commands/configure\";\nimport { fileURLToPath } from \"url\";\n\nimport { isValidClientId, isValidEnv } from \"../common/paramValidation.js\";\n\nconst STUBS_ROOT = fileURLToPath(new URL(\"./stubs/\", import.meta.url));\n\nexport async function configure(command: Configure) {\n const clientId = await command.prompt.ask(\"Apitally client ID\", {\n result(value) {\n return value.trim().toLowerCase();\n },\n validate(value) {\n return isValidClientId(value);\n },\n });\n const env = await command.prompt.ask(\"Environment name\", {\n default: \"dev\",\n result(value) {\n return value\n .trim()\n .toLowerCase()\n .replaceAll(\"_\", \"-\")\n .replaceAll(\" \", \"-\");\n },\n validate(value) {\n return isValidEnv(value);\n },\n });\n\n const codemods = await command.createCodemods();\n\n await codemods.makeUsingStub(STUBS_ROOT, \"config/apitally.stub\", {});\n\n await codemods.registerMiddleware(\"router\", [\n {\n path: \"apitally/adonisjs/middleware\",\n },\n ]);\n\n await codemods.updateRcFile((rcFile: any) => {\n rcFile.addProvider(\"apitally/adonisjs/provider\");\n });\n\n await codemods.defineEnvVariables({\n APITALLY_CLIENT_ID: clientId,\n APITALLY_ENV: env,\n });\n\n await codemods.defineEnvValidations({\n leadingComment: \"Variables for configuring the apitally package\",\n variables: {\n APITALLY_CLIENT_ID: \"Env.schema.string()\",\n APITALLY_ENV: \"Env.schema.string.optional()\",\n },\n });\n}\n","export function isValidClientId(clientId: string): boolean {\n const regexExp =\n /^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\n return regexExp.test(clientId);\n}\n\nexport function isValidEnv(env: string): boolean {\n const regexExp = /^[\\w-]{1,32}$/;\n return regexExp.test(env);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AAKA,iBAA8B;;;ACLvB,SAASA,gBAAgBC,UAAgB;AAC9C,QAAMC,WACJ;AACF,SAAOA,SAASC,KAAKF,QAAAA;AACvB;AAJgBD;AAMT,SAASI,WAAWC,KAAW;AACpC,QAAMH,WAAW;AACjB,SAAOA,SAASC,KAAKE,GAAAA;AACvB;AAHgBD;;;ADNhB;AASA,IAAME,iBAAaC,0BAAc,IAAIC,IAAI,YAAY,YAAYC,GAAG,CAAA;AAEpE,eAAsBC,UAAUC,SAAkB;AAChD,QAAMC,WAAW,MAAMD,QAAQE,OAAOC,IAAI,sBAAsB;IAC9DC,OAAOC,OAAK;AACV,aAAOA,MAAMC,KAAI,EAAGC,YAAW;IACjC;IACAC,SAASH,OAAK;AACZ,aAAOI,gBAAgBJ,KAAAA;IACzB;EACF,CAAA;AACA,QAAMK,MAAM,MAAMV,QAAQE,OAAOC,IAAI,oBAAoB;IACvDQ,SAAS;IACTP,OAAOC,OAAK;AACV,aAAOA,MACJC,KAAI,EACJC,YAAW,EACXK,WAAW,KAAK,GAAA,EAChBA,WAAW,KAAK,GAAA;IACrB;IACAJ,SAASH,OAAK;AACZ,aAAOQ,WAAWR,KAAAA;IACpB;EACF,CAAA;AAEA,QAAMS,WAAW,MAAMd,QAAQe,eAAc;AAE7C,QAAMD,SAASE,cAAcrB,YAAY,wBAAwB,CAAC,CAAA;AAElE,QAAMmB,SAASG,mBAAmB,UAAU;IAC1C;MACEC,MAAM;IACR;GACD;AAED,QAAMJ,SAASK,aAAa,CAACC,WAAAA;AAC3BA,WAAOC,YAAY,4BAAA;EACrB,CAAA;AAEA,QAAMP,SAASQ,mBAAmB;IAChCC,oBAAoBtB;IACpBuB,cAAcd;EAChB,CAAA;AAEA,QAAMI,SAASW,qBAAqB;IAClCC,gBAAgB;IAChBC,WAAW;MACTJ,oBAAoB;MACpBC,cAAc;IAChB;EACF,CAAA;AACF;AAjDsBzB;","names":["isValidClientId","clientId","regexExp","test","isValidEnv","env","STUBS_ROOT","fileURLToPath","URL","url","configure","command","clientId","prompt","ask","result","value","trim","toLowerCase","validate","isValidClientId","env","default","replaceAll","isValidEnv","codemods","createCodemods","makeUsingStub","registerMiddleware","path","updateRcFile","rcFile","addProvider","defineEnvVariables","APITALLY_CLIENT_ID","APITALLY_ENV","defineEnvValidations","leadingComment","variables"]}
@@ -3,8 +3,39 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
3
3
 
4
4
  // src/adonisjs/configure.ts
5
5
  import { fileURLToPath } from "url";
6
+
7
+ // src/common/paramValidation.ts
8
+ function isValidClientId(clientId) {
9
+ const regexExp = /^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
10
+ return regexExp.test(clientId);
11
+ }
12
+ __name(isValidClientId, "isValidClientId");
13
+ function isValidEnv(env) {
14
+ const regexExp = /^[\w-]{1,32}$/;
15
+ return regexExp.test(env);
16
+ }
17
+ __name(isValidEnv, "isValidEnv");
18
+
19
+ // src/adonisjs/configure.ts
6
20
  var STUBS_ROOT = fileURLToPath(new URL("./stubs/", import.meta.url));
7
21
  async function configure(command) {
22
+ const clientId = await command.prompt.ask("Apitally client ID", {
23
+ result(value) {
24
+ return value.trim().toLowerCase();
25
+ },
26
+ validate(value) {
27
+ return isValidClientId(value);
28
+ }
29
+ });
30
+ const env = await command.prompt.ask("Environment name", {
31
+ default: "dev",
32
+ result(value) {
33
+ return value.trim().toLowerCase().replaceAll("_", "-").replaceAll(" ", "-");
34
+ },
35
+ validate(value) {
36
+ return isValidEnv(value);
37
+ }
38
+ });
8
39
  const codemods = await command.createCodemods();
9
40
  await codemods.makeUsingStub(STUBS_ROOT, "config/apitally.stub", {});
10
41
  await codemods.registerMiddleware("router", [
@@ -16,8 +47,8 @@ async function configure(command) {
16
47
  rcFile.addProvider("apitally/adonisjs/provider");
17
48
  });
18
49
  await codemods.defineEnvVariables({
19
- APITALLY_CLIENT_ID: "",
20
- APITALLY_ENV: "dev"
50
+ APITALLY_CLIENT_ID: clientId,
51
+ APITALLY_ENV: env
21
52
  });
22
53
  await codemods.defineEnvValidations({
23
54
  leadingComment: "Variables for configuring the apitally package",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/adonisjs/configure.ts"],"sourcesContent":["/**\n * Allows users to add Apitally to their AdonisJS application using the built-in Ace command.\n */\n\nimport type Configure from \"@adonisjs/core/commands/configure\";\nimport { fileURLToPath } from \"url\";\n\nconst STUBS_ROOT = fileURLToPath(new URL(\"./stubs/\", import.meta.url));\n\nexport async function configure(command: Configure) {\n const codemods = await command.createCodemods();\n\n await codemods.makeUsingStub(STUBS_ROOT, \"config/apitally.stub\", {});\n\n await codemods.registerMiddleware(\"router\", [\n {\n path: \"apitally/adonisjs/middleware\",\n },\n ]);\n\n await codemods.updateRcFile((rcFile: any) => {\n rcFile.addProvider(\"apitally/adonisjs/provider\");\n });\n\n await codemods.defineEnvVariables({\n APITALLY_CLIENT_ID: \"\",\n APITALLY_ENV: \"dev\",\n });\n\n await codemods.defineEnvValidations({\n leadingComment: \"Variables for configuring the apitally package\",\n variables: {\n APITALLY_CLIENT_ID: \"Env.schema.string()\",\n APITALLY_ENV: \"Env.schema.string.optional()\",\n },\n });\n}\n"],"mappings":";;;;AAKA,SAASA,qBAAqB;AAE9B,IAAMC,aAAaC,cAAc,IAAIC,IAAI,YAAY,YAAYC,GAAG,CAAA;AAEpE,eAAsBC,UAAUC,SAAkB;AAChD,QAAMC,WAAW,MAAMD,QAAQE,eAAc;AAE7C,QAAMD,SAASE,cAAcR,YAAY,wBAAwB,CAAC,CAAA;AAElE,QAAMM,SAASG,mBAAmB,UAAU;IAC1C;MACEC,MAAM;IACR;GACD;AAED,QAAMJ,SAASK,aAAa,CAACC,WAAAA;AAC3BA,WAAOC,YAAY,4BAAA;EACrB,CAAA;AAEA,QAAMP,SAASQ,mBAAmB;IAChCC,oBAAoB;IACpBC,cAAc;EAChB,CAAA;AAEA,QAAMV,SAASW,qBAAqB;IAClCC,gBAAgB;IAChBC,WAAW;MACTJ,oBAAoB;MACpBC,cAAc;IAChB;EACF,CAAA;AACF;AA3BsBZ;","names":["fileURLToPath","STUBS_ROOT","fileURLToPath","URL","url","configure","command","codemods","createCodemods","makeUsingStub","registerMiddleware","path","updateRcFile","rcFile","addProvider","defineEnvVariables","APITALLY_CLIENT_ID","APITALLY_ENV","defineEnvValidations","leadingComment","variables"]}
1
+ {"version":3,"sources":["../../src/adonisjs/configure.ts","../../src/common/paramValidation.ts"],"sourcesContent":["/**\n * Allows users to add Apitally to their AdonisJS application using the built-in Ace command.\n */\n\nimport type Configure from \"@adonisjs/core/commands/configure\";\nimport { fileURLToPath } from \"url\";\n\nimport { isValidClientId, isValidEnv } from \"../common/paramValidation.js\";\n\nconst STUBS_ROOT = fileURLToPath(new URL(\"./stubs/\", import.meta.url));\n\nexport async function configure(command: Configure) {\n const clientId = await command.prompt.ask(\"Apitally client ID\", {\n result(value) {\n return value.trim().toLowerCase();\n },\n validate(value) {\n return isValidClientId(value);\n },\n });\n const env = await command.prompt.ask(\"Environment name\", {\n default: \"dev\",\n result(value) {\n return value\n .trim()\n .toLowerCase()\n .replaceAll(\"_\", \"-\")\n .replaceAll(\" \", \"-\");\n },\n validate(value) {\n return isValidEnv(value);\n },\n });\n\n const codemods = await command.createCodemods();\n\n await codemods.makeUsingStub(STUBS_ROOT, \"config/apitally.stub\", {});\n\n await codemods.registerMiddleware(\"router\", [\n {\n path: \"apitally/adonisjs/middleware\",\n },\n ]);\n\n await codemods.updateRcFile((rcFile: any) => {\n rcFile.addProvider(\"apitally/adonisjs/provider\");\n });\n\n await codemods.defineEnvVariables({\n APITALLY_CLIENT_ID: clientId,\n APITALLY_ENV: env,\n });\n\n await codemods.defineEnvValidations({\n leadingComment: \"Variables for configuring the apitally package\",\n variables: {\n APITALLY_CLIENT_ID: \"Env.schema.string()\",\n APITALLY_ENV: \"Env.schema.string.optional()\",\n },\n });\n}\n","export function isValidClientId(clientId: string): boolean {\n const regexExp =\n /^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\n return regexExp.test(clientId);\n}\n\nexport function isValidEnv(env: string): boolean {\n const regexExp = /^[\\w-]{1,32}$/;\n return regexExp.test(env);\n}\n"],"mappings":";;;;AAKA,SAASA,qBAAqB;;;ACLvB,SAASC,gBAAgBC,UAAgB;AAC9C,QAAMC,WACJ;AACF,SAAOA,SAASC,KAAKF,QAAAA;AACvB;AAJgBD;AAMT,SAASI,WAAWC,KAAW;AACpC,QAAMH,WAAW;AACjB,SAAOA,SAASC,KAAKE,GAAAA;AACvB;AAHgBD;;;ADGhB,IAAME,aAAaC,cAAc,IAAIC,IAAI,YAAY,YAAYC,GAAG,CAAA;AAEpE,eAAsBC,UAAUC,SAAkB;AAChD,QAAMC,WAAW,MAAMD,QAAQE,OAAOC,IAAI,sBAAsB;IAC9DC,OAAOC,OAAK;AACV,aAAOA,MAAMC,KAAI,EAAGC,YAAW;IACjC;IACAC,SAASH,OAAK;AACZ,aAAOI,gBAAgBJ,KAAAA;IACzB;EACF,CAAA;AACA,QAAMK,MAAM,MAAMV,QAAQE,OAAOC,IAAI,oBAAoB;IACvDQ,SAAS;IACTP,OAAOC,OAAK;AACV,aAAOA,MACJC,KAAI,EACJC,YAAW,EACXK,WAAW,KAAK,GAAA,EAChBA,WAAW,KAAK,GAAA;IACrB;IACAJ,SAASH,OAAK;AACZ,aAAOQ,WAAWR,KAAAA;IACpB;EACF,CAAA;AAEA,QAAMS,WAAW,MAAMd,QAAQe,eAAc;AAE7C,QAAMD,SAASE,cAAcrB,YAAY,wBAAwB,CAAC,CAAA;AAElE,QAAMmB,SAASG,mBAAmB,UAAU;IAC1C;MACEC,MAAM;IACR;GACD;AAED,QAAMJ,SAASK,aAAa,CAACC,WAAAA;AAC3BA,WAAOC,YAAY,4BAAA;EACrB,CAAA;AAEA,QAAMP,SAASQ,mBAAmB;IAChCC,oBAAoBtB;IACpBuB,cAAcd;EAChB,CAAA;AAEA,QAAMI,SAASW,qBAAqB;IAClCC,gBAAgB;IAChBC,WAAW;MACTJ,oBAAoB;MACpBC,cAAc;IAChB;EACF,CAAA;AACF;AAjDsBzB;","names":["fileURLToPath","isValidClientId","clientId","regexExp","test","isValidEnv","env","STUBS_ROOT","fileURLToPath","URL","url","configure","command","clientId","prompt","ask","result","value","trim","toLowerCase","validate","isValidClientId","env","default","replaceAll","isValidEnv","codemods","createCodemods","makeUsingStub","registerMiddleware","path","updateRcFile","rcFile","addProvider","defineEnvVariables","APITALLY_CLIENT_ID","APITALLY_ENV","defineEnvValidations","leadingComment","variables"]}
@@ -29,9 +29,40 @@ module.exports = __toCommonJS(adonisjs_exports);
29
29
 
30
30
  // src/adonisjs/configure.ts
31
31
  var import_url = require("url");
32
+
33
+ // src/common/paramValidation.ts
34
+ function isValidClientId(clientId) {
35
+ const regexExp = /^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
36
+ return regexExp.test(clientId);
37
+ }
38
+ __name(isValidClientId, "isValidClientId");
39
+ function isValidEnv(env) {
40
+ const regexExp = /^[\w-]{1,32}$/;
41
+ return regexExp.test(env);
42
+ }
43
+ __name(isValidEnv, "isValidEnv");
44
+
45
+ // src/adonisjs/configure.ts
32
46
  var import_meta = {};
33
47
  var STUBS_ROOT = (0, import_url.fileURLToPath)(new URL("./stubs/", import_meta.url));
34
48
  async function configure(command) {
49
+ const clientId = await command.prompt.ask("Apitally client ID", {
50
+ result(value) {
51
+ return value.trim().toLowerCase();
52
+ },
53
+ validate(value) {
54
+ return isValidClientId(value);
55
+ }
56
+ });
57
+ const env = await command.prompt.ask("Environment name", {
58
+ default: "dev",
59
+ result(value) {
60
+ return value.trim().toLowerCase().replaceAll("_", "-").replaceAll(" ", "-");
61
+ },
62
+ validate(value) {
63
+ return isValidEnv(value);
64
+ }
65
+ });
35
66
  const codemods = await command.createCodemods();
36
67
  await codemods.makeUsingStub(STUBS_ROOT, "config/apitally.stub", {});
37
68
  await codemods.registerMiddleware("router", [
@@ -43,8 +74,8 @@ async function configure(command) {
43
74
  rcFile.addProvider("apitally/adonisjs/provider");
44
75
  });
45
76
  await codemods.defineEnvVariables({
46
- APITALLY_CLIENT_ID: "",
47
- APITALLY_ENV: "dev"
77
+ APITALLY_CLIENT_ID: clientId,
78
+ APITALLY_ENV: env
48
79
  });
49
80
  await codemods.defineEnvValidations({
50
81
  leadingComment: "Variables for configuring the apitally package",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/adonisjs/index.ts","../../src/adonisjs/configure.ts"],"sourcesContent":["import type { HttpContext } from \"@adonisjs/core/http\";\n\nimport type { ApitallyConfig } from \"../common/types.js\";\nexport type { ApitallyConfig, ApitallyConsumer } from \"../common/types.js\";\nexport { configure } from \"./configure.js\";\n\nexport function defineConfig(config: ApitallyConfig) {\n return config;\n}\n\nexport function captureError(error: unknown, ctx: HttpContext) {\n if (error instanceof Error) {\n ctx.apitallyError = error;\n }\n}\n","/**\n * Allows users to add Apitally to their AdonisJS application using the built-in Ace command.\n */\n\nimport type Configure from \"@adonisjs/core/commands/configure\";\nimport { fileURLToPath } from \"url\";\n\nconst STUBS_ROOT = fileURLToPath(new URL(\"./stubs/\", import.meta.url));\n\nexport async function configure(command: Configure) {\n const codemods = await command.createCodemods();\n\n await codemods.makeUsingStub(STUBS_ROOT, \"config/apitally.stub\", {});\n\n await codemods.registerMiddleware(\"router\", [\n {\n path: \"apitally/adonisjs/middleware\",\n },\n ]);\n\n await codemods.updateRcFile((rcFile: any) => {\n rcFile.addProvider(\"apitally/adonisjs/provider\");\n });\n\n await codemods.defineEnvVariables({\n APITALLY_CLIENT_ID: \"\",\n APITALLY_ENV: \"dev\",\n });\n\n await codemods.defineEnvValidations({\n leadingComment: \"Variables for configuring the apitally package\",\n variables: {\n APITALLY_CLIENT_ID: \"Env.schema.string()\",\n APITALLY_ENV: \"Env.schema.string.optional()\",\n },\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAIA;;;;;;;;;ACCA,iBAA8B;AAL9B;AAOA,IAAMA,iBAAaC,0BAAc,IAAIC,IAAI,YAAY,YAAYC,GAAG,CAAA;AAEpE,eAAsBC,UAAUC,SAAkB;AAChD,QAAMC,WAAW,MAAMD,QAAQE,eAAc;AAE7C,QAAMD,SAASE,cAAcR,YAAY,wBAAwB,CAAC,CAAA;AAElE,QAAMM,SAASG,mBAAmB,UAAU;IAC1C;MACEC,MAAM;IACR;GACD;AAED,QAAMJ,SAASK,aAAa,CAACC,WAAAA;AAC3BA,WAAOC,YAAY,4BAAA;EACrB,CAAA;AAEA,QAAMP,SAASQ,mBAAmB;IAChCC,oBAAoB;IACpBC,cAAc;EAChB,CAAA;AAEA,QAAMV,SAASW,qBAAqB;IAClCC,gBAAgB;IAChBC,WAAW;MACTJ,oBAAoB;MACpBC,cAAc;IAChB;EACF,CAAA;AACF;AA3BsBZ;;;ADHf,SAASgB,aAAaC,QAAsB;AACjD,SAAOA;AACT;AAFgBD;AAIT,SAASE,aAAaC,OAAgBC,KAAgB;AAC3D,MAAID,iBAAiBE,OAAO;AAC1BD,QAAIE,gBAAgBH;EACtB;AACF;AAJgBD;","names":["STUBS_ROOT","fileURLToPath","URL","url","configure","command","codemods","createCodemods","makeUsingStub","registerMiddleware","path","updateRcFile","rcFile","addProvider","defineEnvVariables","APITALLY_CLIENT_ID","APITALLY_ENV","defineEnvValidations","leadingComment","variables","defineConfig","config","captureError","error","ctx","Error","apitallyError"]}
1
+ {"version":3,"sources":["../../src/adonisjs/index.ts","../../src/adonisjs/configure.ts","../../src/common/paramValidation.ts"],"sourcesContent":["import type { HttpContext } from \"@adonisjs/core/http\";\n\nimport type { ApitallyConfig } from \"../common/types.js\";\nexport type { ApitallyConfig, ApitallyConsumer } from \"../common/types.js\";\nexport { configure } from \"./configure.js\";\n\nexport function defineConfig(config: ApitallyConfig) {\n return config;\n}\n\nexport function captureError(error: unknown, ctx: HttpContext) {\n if (error instanceof Error) {\n ctx.apitallyError = error;\n }\n}\n","/**\n * Allows users to add Apitally to their AdonisJS application using the built-in Ace command.\n */\n\nimport type Configure from \"@adonisjs/core/commands/configure\";\nimport { fileURLToPath } from \"url\";\n\nimport { isValidClientId, isValidEnv } from \"../common/paramValidation.js\";\n\nconst STUBS_ROOT = fileURLToPath(new URL(\"./stubs/\", import.meta.url));\n\nexport async function configure(command: Configure) {\n const clientId = await command.prompt.ask(\"Apitally client ID\", {\n result(value) {\n return value.trim().toLowerCase();\n },\n validate(value) {\n return isValidClientId(value);\n },\n });\n const env = await command.prompt.ask(\"Environment name\", {\n default: \"dev\",\n result(value) {\n return value\n .trim()\n .toLowerCase()\n .replaceAll(\"_\", \"-\")\n .replaceAll(\" \", \"-\");\n },\n validate(value) {\n return isValidEnv(value);\n },\n });\n\n const codemods = await command.createCodemods();\n\n await codemods.makeUsingStub(STUBS_ROOT, \"config/apitally.stub\", {});\n\n await codemods.registerMiddleware(\"router\", [\n {\n path: \"apitally/adonisjs/middleware\",\n },\n ]);\n\n await codemods.updateRcFile((rcFile: any) => {\n rcFile.addProvider(\"apitally/adonisjs/provider\");\n });\n\n await codemods.defineEnvVariables({\n APITALLY_CLIENT_ID: clientId,\n APITALLY_ENV: env,\n });\n\n await codemods.defineEnvValidations({\n leadingComment: \"Variables for configuring the apitally package\",\n variables: {\n APITALLY_CLIENT_ID: \"Env.schema.string()\",\n APITALLY_ENV: \"Env.schema.string.optional()\",\n },\n });\n}\n","export function isValidClientId(clientId: string): boolean {\n const regexExp =\n /^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\n return regexExp.test(clientId);\n}\n\nexport function isValidEnv(env: string): boolean {\n const regexExp = /^[\\w-]{1,32}$/;\n return regexExp.test(env);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAIA;;;;;;;;;ACCA,iBAA8B;;;ACLvB,SAASA,gBAAgBC,UAAgB;AAC9C,QAAMC,WACJ;AACF,SAAOA,SAASC,KAAKF,QAAAA;AACvB;AAJgBD;AAMT,SAASI,WAAWC,KAAW;AACpC,QAAMH,WAAW;AACjB,SAAOA,SAASC,KAAKE,GAAAA;AACvB;AAHgBD;;;ADNhB;AASA,IAAME,iBAAaC,0BAAc,IAAIC,IAAI,YAAY,YAAYC,GAAG,CAAA;AAEpE,eAAsBC,UAAUC,SAAkB;AAChD,QAAMC,WAAW,MAAMD,QAAQE,OAAOC,IAAI,sBAAsB;IAC9DC,OAAOC,OAAK;AACV,aAAOA,MAAMC,KAAI,EAAGC,YAAW;IACjC;IACAC,SAASH,OAAK;AACZ,aAAOI,gBAAgBJ,KAAAA;IACzB;EACF,CAAA;AACA,QAAMK,MAAM,MAAMV,QAAQE,OAAOC,IAAI,oBAAoB;IACvDQ,SAAS;IACTP,OAAOC,OAAK;AACV,aAAOA,MACJC,KAAI,EACJC,YAAW,EACXK,WAAW,KAAK,GAAA,EAChBA,WAAW,KAAK,GAAA;IACrB;IACAJ,SAASH,OAAK;AACZ,aAAOQ,WAAWR,KAAAA;IACpB;EACF,CAAA;AAEA,QAAMS,WAAW,MAAMd,QAAQe,eAAc;AAE7C,QAAMD,SAASE,cAAcrB,YAAY,wBAAwB,CAAC,CAAA;AAElE,QAAMmB,SAASG,mBAAmB,UAAU;IAC1C;MACEC,MAAM;IACR;GACD;AAED,QAAMJ,SAASK,aAAa,CAACC,WAAAA;AAC3BA,WAAOC,YAAY,4BAAA;EACrB,CAAA;AAEA,QAAMP,SAASQ,mBAAmB;IAChCC,oBAAoBtB;IACpBuB,cAAcd;EAChB,CAAA;AAEA,QAAMI,SAASW,qBAAqB;IAClCC,gBAAgB;IAChBC,WAAW;MACTJ,oBAAoB;MACpBC,cAAc;IAChB;EACF,CAAA;AACF;AAjDsBzB;;;ADLf,SAAS6B,aAAaC,QAAsB;AACjD,SAAOA;AACT;AAFgBD;AAIT,SAASE,aAAaC,OAAgBC,KAAgB;AAC3D,MAAID,iBAAiBE,OAAO;AAC1BD,QAAIE,gBAAgBH;EACtB;AACF;AAJgBD;","names":["isValidClientId","clientId","regexExp","test","isValidEnv","env","STUBS_ROOT","fileURLToPath","URL","url","configure","command","clientId","prompt","ask","result","value","trim","toLowerCase","validate","isValidClientId","env","default","replaceAll","isValidEnv","codemods","createCodemods","makeUsingStub","registerMiddleware","path","updateRcFile","rcFile","addProvider","defineEnvVariables","APITALLY_CLIENT_ID","APITALLY_ENV","defineEnvValidations","leadingComment","variables","defineConfig","config","captureError","error","ctx","Error","apitallyError"]}
@@ -3,8 +3,39 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
3
3
 
4
4
  // src/adonisjs/configure.ts
5
5
  import { fileURLToPath } from "url";
6
+
7
+ // src/common/paramValidation.ts
8
+ function isValidClientId(clientId) {
9
+ const regexExp = /^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
10
+ return regexExp.test(clientId);
11
+ }
12
+ __name(isValidClientId, "isValidClientId");
13
+ function isValidEnv(env) {
14
+ const regexExp = /^[\w-]{1,32}$/;
15
+ return regexExp.test(env);
16
+ }
17
+ __name(isValidEnv, "isValidEnv");
18
+
19
+ // src/adonisjs/configure.ts
6
20
  var STUBS_ROOT = fileURLToPath(new URL("./stubs/", import.meta.url));
7
21
  async function configure(command) {
22
+ const clientId = await command.prompt.ask("Apitally client ID", {
23
+ result(value) {
24
+ return value.trim().toLowerCase();
25
+ },
26
+ validate(value) {
27
+ return isValidClientId(value);
28
+ }
29
+ });
30
+ const env = await command.prompt.ask("Environment name", {
31
+ default: "dev",
32
+ result(value) {
33
+ return value.trim().toLowerCase().replaceAll("_", "-").replaceAll(" ", "-");
34
+ },
35
+ validate(value) {
36
+ return isValidEnv(value);
37
+ }
38
+ });
8
39
  const codemods = await command.createCodemods();
9
40
  await codemods.makeUsingStub(STUBS_ROOT, "config/apitally.stub", {});
10
41
  await codemods.registerMiddleware("router", [
@@ -16,8 +47,8 @@ async function configure(command) {
16
47
  rcFile.addProvider("apitally/adonisjs/provider");
17
48
  });
18
49
  await codemods.defineEnvVariables({
19
- APITALLY_CLIENT_ID: "",
20
- APITALLY_ENV: "dev"
50
+ APITALLY_CLIENT_ID: clientId,
51
+ APITALLY_ENV: env
21
52
  });
22
53
  await codemods.defineEnvValidations({
23
54
  leadingComment: "Variables for configuring the apitally package",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/adonisjs/configure.ts","../../src/adonisjs/index.ts"],"sourcesContent":["/**\n * Allows users to add Apitally to their AdonisJS application using the built-in Ace command.\n */\n\nimport type Configure from \"@adonisjs/core/commands/configure\";\nimport { fileURLToPath } from \"url\";\n\nconst STUBS_ROOT = fileURLToPath(new URL(\"./stubs/\", import.meta.url));\n\nexport async function configure(command: Configure) {\n const codemods = await command.createCodemods();\n\n await codemods.makeUsingStub(STUBS_ROOT, \"config/apitally.stub\", {});\n\n await codemods.registerMiddleware(\"router\", [\n {\n path: \"apitally/adonisjs/middleware\",\n },\n ]);\n\n await codemods.updateRcFile((rcFile: any) => {\n rcFile.addProvider(\"apitally/adonisjs/provider\");\n });\n\n await codemods.defineEnvVariables({\n APITALLY_CLIENT_ID: \"\",\n APITALLY_ENV: \"dev\",\n });\n\n await codemods.defineEnvValidations({\n leadingComment: \"Variables for configuring the apitally package\",\n variables: {\n APITALLY_CLIENT_ID: \"Env.schema.string()\",\n APITALLY_ENV: \"Env.schema.string.optional()\",\n },\n });\n}\n","import type { HttpContext } from \"@adonisjs/core/http\";\n\nimport type { ApitallyConfig } from \"../common/types.js\";\nexport type { ApitallyConfig, ApitallyConsumer } from \"../common/types.js\";\nexport { configure } from \"./configure.js\";\n\nexport function defineConfig(config: ApitallyConfig) {\n return config;\n}\n\nexport function captureError(error: unknown, ctx: HttpContext) {\n if (error instanceof Error) {\n ctx.apitallyError = error;\n }\n}\n"],"mappings":";;;;AAKA,SAASA,qBAAqB;AAE9B,IAAMC,aAAaC,cAAc,IAAIC,IAAI,YAAY,YAAYC,GAAG,CAAA;AAEpE,eAAsBC,UAAUC,SAAkB;AAChD,QAAMC,WAAW,MAAMD,QAAQE,eAAc;AAE7C,QAAMD,SAASE,cAAcR,YAAY,wBAAwB,CAAC,CAAA;AAElE,QAAMM,SAASG,mBAAmB,UAAU;IAC1C;MACEC,MAAM;IACR;GACD;AAED,QAAMJ,SAASK,aAAa,CAACC,WAAAA;AAC3BA,WAAOC,YAAY,4BAAA;EACrB,CAAA;AAEA,QAAMP,SAASQ,mBAAmB;IAChCC,oBAAoB;IACpBC,cAAc;EAChB,CAAA;AAEA,QAAMV,SAASW,qBAAqB;IAClCC,gBAAgB;IAChBC,WAAW;MACTJ,oBAAoB;MACpBC,cAAc;IAChB;EACF,CAAA;AACF;AA3BsBZ;;;ACHf,SAASgB,aAAaC,QAAsB;AACjD,SAAOA;AACT;AAFgBD;AAIT,SAASE,aAAaC,OAAgBC,KAAgB;AAC3D,MAAID,iBAAiBE,OAAO;AAC1BD,QAAIE,gBAAgBH;EACtB;AACF;AAJgBD;","names":["fileURLToPath","STUBS_ROOT","fileURLToPath","URL","url","configure","command","codemods","createCodemods","makeUsingStub","registerMiddleware","path","updateRcFile","rcFile","addProvider","defineEnvVariables","APITALLY_CLIENT_ID","APITALLY_ENV","defineEnvValidations","leadingComment","variables","defineConfig","config","captureError","error","ctx","Error","apitallyError"]}
1
+ {"version":3,"sources":["../../src/adonisjs/configure.ts","../../src/common/paramValidation.ts","../../src/adonisjs/index.ts"],"sourcesContent":["/**\n * Allows users to add Apitally to their AdonisJS application using the built-in Ace command.\n */\n\nimport type Configure from \"@adonisjs/core/commands/configure\";\nimport { fileURLToPath } from \"url\";\n\nimport { isValidClientId, isValidEnv } from \"../common/paramValidation.js\";\n\nconst STUBS_ROOT = fileURLToPath(new URL(\"./stubs/\", import.meta.url));\n\nexport async function configure(command: Configure) {\n const clientId = await command.prompt.ask(\"Apitally client ID\", {\n result(value) {\n return value.trim().toLowerCase();\n },\n validate(value) {\n return isValidClientId(value);\n },\n });\n const env = await command.prompt.ask(\"Environment name\", {\n default: \"dev\",\n result(value) {\n return value\n .trim()\n .toLowerCase()\n .replaceAll(\"_\", \"-\")\n .replaceAll(\" \", \"-\");\n },\n validate(value) {\n return isValidEnv(value);\n },\n });\n\n const codemods = await command.createCodemods();\n\n await codemods.makeUsingStub(STUBS_ROOT, \"config/apitally.stub\", {});\n\n await codemods.registerMiddleware(\"router\", [\n {\n path: \"apitally/adonisjs/middleware\",\n },\n ]);\n\n await codemods.updateRcFile((rcFile: any) => {\n rcFile.addProvider(\"apitally/adonisjs/provider\");\n });\n\n await codemods.defineEnvVariables({\n APITALLY_CLIENT_ID: clientId,\n APITALLY_ENV: env,\n });\n\n await codemods.defineEnvValidations({\n leadingComment: \"Variables for configuring the apitally package\",\n variables: {\n APITALLY_CLIENT_ID: \"Env.schema.string()\",\n APITALLY_ENV: \"Env.schema.string.optional()\",\n },\n });\n}\n","export function isValidClientId(clientId: string): boolean {\n const regexExp =\n /^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\n return regexExp.test(clientId);\n}\n\nexport function isValidEnv(env: string): boolean {\n const regexExp = /^[\\w-]{1,32}$/;\n return regexExp.test(env);\n}\n","import type { HttpContext } from \"@adonisjs/core/http\";\n\nimport type { ApitallyConfig } from \"../common/types.js\";\nexport type { ApitallyConfig, ApitallyConsumer } from \"../common/types.js\";\nexport { configure } from \"./configure.js\";\n\nexport function defineConfig(config: ApitallyConfig) {\n return config;\n}\n\nexport function captureError(error: unknown, ctx: HttpContext) {\n if (error instanceof Error) {\n ctx.apitallyError = error;\n }\n}\n"],"mappings":";;;;AAKA,SAASA,qBAAqB;;;ACLvB,SAASC,gBAAgBC,UAAgB;AAC9C,QAAMC,WACJ;AACF,SAAOA,SAASC,KAAKF,QAAAA;AACvB;AAJgBD;AAMT,SAASI,WAAWC,KAAW;AACpC,QAAMH,WAAW;AACjB,SAAOA,SAASC,KAAKE,GAAAA;AACvB;AAHgBD;;;ADGhB,IAAME,aAAaC,cAAc,IAAIC,IAAI,YAAY,YAAYC,GAAG,CAAA;AAEpE,eAAsBC,UAAUC,SAAkB;AAChD,QAAMC,WAAW,MAAMD,QAAQE,OAAOC,IAAI,sBAAsB;IAC9DC,OAAOC,OAAK;AACV,aAAOA,MAAMC,KAAI,EAAGC,YAAW;IACjC;IACAC,SAASH,OAAK;AACZ,aAAOI,gBAAgBJ,KAAAA;IACzB;EACF,CAAA;AACA,QAAMK,MAAM,MAAMV,QAAQE,OAAOC,IAAI,oBAAoB;IACvDQ,SAAS;IACTP,OAAOC,OAAK;AACV,aAAOA,MACJC,KAAI,EACJC,YAAW,EACXK,WAAW,KAAK,GAAA,EAChBA,WAAW,KAAK,GAAA;IACrB;IACAJ,SAASH,OAAK;AACZ,aAAOQ,WAAWR,KAAAA;IACpB;EACF,CAAA;AAEA,QAAMS,WAAW,MAAMd,QAAQe,eAAc;AAE7C,QAAMD,SAASE,cAAcrB,YAAY,wBAAwB,CAAC,CAAA;AAElE,QAAMmB,SAASG,mBAAmB,UAAU;IAC1C;MACEC,MAAM;IACR;GACD;AAED,QAAMJ,SAASK,aAAa,CAACC,WAAAA;AAC3BA,WAAOC,YAAY,4BAAA;EACrB,CAAA;AAEA,QAAMP,SAASQ,mBAAmB;IAChCC,oBAAoBtB;IACpBuB,cAAcd;EAChB,CAAA;AAEA,QAAMI,SAASW,qBAAqB;IAClCC,gBAAgB;IAChBC,WAAW;MACTJ,oBAAoB;MACpBC,cAAc;IAChB;EACF,CAAA;AACF;AAjDsBzB;;;AELf,SAAS6B,aAAaC,QAAsB;AACjD,SAAOA;AACT;AAFgBD;AAIT,SAASE,aAAaC,OAAgBC,KAAgB;AAC3D,MAAID,iBAAiBE,OAAO;AAC1BD,QAAIE,gBAAgBH;EACtB;AACF;AAJgBD;","names":["fileURLToPath","isValidClientId","clientId","regexExp","test","isValidEnv","env","STUBS_ROOT","fileURLToPath","URL","url","configure","command","clientId","prompt","ask","result","value","trim","toLowerCase","validate","isValidClientId","env","default","replaceAll","isValidEnv","codemods","createCodemods","makeUsingStub","registerMiddleware","path","updateRcFile","rcFile","addProvider","defineEnvVariables","APITALLY_CLIENT_ID","APITALLY_ENV","defineEnvValidations","leadingComment","variables","defineConfig","config","captureError","error","ctx","Error","apitallyError"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apitally",
3
- "version": "0.15.2",
3
+ "version": "0.15.3",
4
4
  "description": "Simple API monitoring & analytics for REST APIs built with Express, Fastify, Hono, H3, Koa, and NestJS.",
5
5
  "author": "Apitally <hello@apitally.io>",
6
6
  "license": "MIT",