zenstack 1.0.0-alpha.23 → 1.0.0-alpha.25

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 (84) hide show
  1. package/README.md +79 -9
  2. package/cli/cli-error.js +3 -5
  3. package/cli/cli-error.js.map +1 -1
  4. package/cli/cli-util.js +123 -105
  5. package/cli/cli-util.js.map +1 -1
  6. package/cli/index.js +105 -63
  7. package/cli/index.js.map +1 -1
  8. package/cli/plugin-runner.js +130 -127
  9. package/cli/plugin-runner.js.map +1 -1
  10. package/language-server/constants.js +5 -13
  11. package/language-server/constants.js.map +1 -1
  12. package/language-server/main.js +8 -15
  13. package/language-server/main.js.map +1 -1
  14. package/language-server/types.js +3 -1
  15. package/language-server/types.js.map +1 -1
  16. package/language-server/utils.js +13 -16
  17. package/language-server/utils.js.map +1 -1
  18. package/language-server/validator/attribute-validator.js +3 -7
  19. package/language-server/validator/attribute-validator.js.map +1 -1
  20. package/language-server/validator/datamodel-validator.js +293 -347
  21. package/language-server/validator/datamodel-validator.js.map +1 -1
  22. package/language-server/validator/datasource-validator.js +61 -71
  23. package/language-server/validator/datasource-validator.js.map +1 -1
  24. package/language-server/validator/enum-validator.js +6 -10
  25. package/language-server/validator/enum-validator.js.map +1 -1
  26. package/language-server/validator/expression-validator.js +25 -31
  27. package/language-server/validator/expression-validator.js.map +1 -1
  28. package/language-server/validator/schema-validator.js +18 -25
  29. package/language-server/validator/schema-validator.js.map +1 -1
  30. package/language-server/validator/utils.js +86 -85
  31. package/language-server/validator/utils.js.map +1 -1
  32. package/language-server/validator/zmodel-validator.js +55 -58
  33. package/language-server/validator/zmodel-validator.js.map +1 -1
  34. package/language-server/zmodel-formatter.js +40 -21
  35. package/language-server/zmodel-formatter.js.map +1 -1
  36. package/language-server/zmodel-linker.js +328 -331
  37. package/language-server/zmodel-linker.js.map +1 -1
  38. package/language-server/zmodel-module.js +50 -59
  39. package/language-server/zmodel-module.js.map +1 -1
  40. package/language-server/zmodel-scope.js +35 -25
  41. package/language-server/zmodel-scope.js.map +1 -1
  42. package/language-server/zmodel-workspace-manager.js +30 -18
  43. package/language-server/zmodel-workspace-manager.js.map +1 -1
  44. package/package.json +8 -12
  45. package/plugins/access-policy/expression-writer.js +301 -292
  46. package/plugins/access-policy/expression-writer.js.map +1 -1
  47. package/plugins/access-policy/index.js +20 -11
  48. package/plugins/access-policy/index.js.map +1 -1
  49. package/plugins/access-policy/policy-guard-generator.js +327 -321
  50. package/plugins/access-policy/policy-guard-generator.js.map +1 -1
  51. package/plugins/access-policy/typescript-expression-transformer.js +94 -95
  52. package/plugins/access-policy/typescript-expression-transformer.js.map +1 -1
  53. package/plugins/access-policy/utils.js +7 -9
  54. package/plugins/access-policy/utils.js.map +1 -1
  55. package/plugins/access-policy/zod-schema-generator.js +143 -159
  56. package/plugins/access-policy/zod-schema-generator.js.map +1 -1
  57. package/plugins/model-meta/index.js +97 -102
  58. package/plugins/model-meta/index.js.map +1 -1
  59. package/plugins/plugin-utils.js +34 -40
  60. package/plugins/plugin-utils.js.map +1 -1
  61. package/plugins/prisma/indent-string.js +4 -8
  62. package/plugins/prisma/indent-string.js.map +1 -1
  63. package/plugins/prisma/index.js +20 -11
  64. package/plugins/prisma/index.js.map +1 -1
  65. package/plugins/prisma/prisma-builder.js +235 -213
  66. package/plugins/prisma/prisma-builder.js.map +1 -1
  67. package/plugins/prisma/schema-generator.js +205 -192
  68. package/plugins/prisma/schema-generator.js.map +1 -1
  69. package/plugins/prisma/zmodel-code-generator.js +109 -114
  70. package/plugins/prisma/zmodel-code-generator.js.map +1 -1
  71. package/telemetry.js +107 -90
  72. package/telemetry.js.map +1 -1
  73. package/types.js +3 -1
  74. package/types.js.map +1 -1
  75. package/utils/ast-utils.js +67 -67
  76. package/utils/ast-utils.js.map +1 -1
  77. package/utils/exec-utils.js +6 -15
  78. package/utils/exec-utils.js.map +1 -1
  79. package/utils/pkg-utils.js +38 -35
  80. package/utils/pkg-utils.js.map +1 -1
  81. package/utils/version-utils.js +9 -10
  82. package/utils/version-utils.js.map +1 -1
  83. package/global.d.js +0 -1
  84. package/global.d.js.map +0 -1
@@ -1,79 +1,79 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.VALIDATION_ATTRIBUTES = void 0;
7
- exports.analyzePolicies = analyzePolicies;
8
- exports.extractDataModelsWithAllowRules = extractDataModelsWithAllowRules;
9
- exports.getIdField = getIdField;
10
- var _ast = require("@zenstackhq/language/ast");
11
- var _sdk = require("@zenstackhq/sdk");
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getIdField = exports.VALIDATION_ATTRIBUTES = exports.analyzePolicies = exports.extractDataModelsWithAllowRules = void 0;
4
+ const ast_1 = require("@zenstackhq/language/ast");
5
+ const sdk_1 = require("@zenstackhq/sdk");
12
6
  function extractDataModelsWithAllowRules(model) {
13
- return model.declarations.filter(d => (0, _ast.isDataModel)(d) && d.attributes.some(attr => {
14
- var _attr$decl$ref;
15
- return ((_attr$decl$ref = attr.decl.ref) === null || _attr$decl$ref === void 0 ? void 0 : _attr$decl$ref.name) === '@@allow';
16
- }));
7
+ return model.declarations.filter((d) => (0, ast_1.isDataModel)(d) && d.attributes.some((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@@allow'; }));
17
8
  }
9
+ exports.extractDataModelsWithAllowRules = extractDataModelsWithAllowRules;
18
10
  function analyzePolicies(dataModel) {
19
- const allows = dataModel.attributes.filter(attr => {
20
- var _attr$decl$ref2;
21
- return ((_attr$decl$ref2 = attr.decl.ref) === null || _attr$decl$ref2 === void 0 ? void 0 : _attr$decl$ref2.name) === '@@allow';
22
- });
23
- const denies = dataModel.attributes.filter(attr => {
24
- var _attr$decl$ref3;
25
- return ((_attr$decl$ref3 = attr.decl.ref) === null || _attr$decl$ref3 === void 0 ? void 0 : _attr$decl$ref3.name) === '@@deny';
26
- });
27
- const create = toStaticPolicy('create', allows, denies);
28
- const read = toStaticPolicy('read', allows, denies);
29
- const update = toStaticPolicy('update', allows, denies);
30
- const del = toStaticPolicy('delete', allows, denies);
31
- const hasFieldValidation = dataModel.fields.some(field => field.attributes.some(attr => VALIDATION_ATTRIBUTES.includes(attr.decl.$refText)));
32
- return {
33
- allows,
34
- denies,
35
- create,
36
- read,
37
- update,
38
- delete: del,
39
- allowAll: create === true && read === true && update === true && del === true,
40
- denyAll: create === false && read === false && update === false && del === false,
41
- hasFieldValidation
42
- };
11
+ const allows = dataModel.attributes.filter((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@@allow'; });
12
+ const denies = dataModel.attributes.filter((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@@deny'; });
13
+ const create = toStaticPolicy('create', allows, denies);
14
+ const read = toStaticPolicy('read', allows, denies);
15
+ const update = toStaticPolicy('update', allows, denies);
16
+ const del = toStaticPolicy('delete', allows, denies);
17
+ const hasFieldValidation = dataModel.fields.some((field) => field.attributes.some((attr) => exports.VALIDATION_ATTRIBUTES.includes(attr.decl.$refText)));
18
+ return {
19
+ allows,
20
+ denies,
21
+ create,
22
+ read,
23
+ update,
24
+ delete: del,
25
+ allowAll: create === true && read === true && update === true && del === true,
26
+ denyAll: create === false && read === false && update === false && del === false,
27
+ hasFieldValidation,
28
+ };
43
29
  }
30
+ exports.analyzePolicies = analyzePolicies;
44
31
  function toStaticPolicy(operation, allows, denies) {
45
- const filteredDenies = forOperation(operation, denies);
46
- if (filteredDenies.some(rule => (0, _sdk.getLiteral)(rule.args[1].value) === true)) {
47
- // any constant true deny rule
48
- return false;
49
- }
50
- const filteredAllows = forOperation(operation, allows);
51
- if (filteredAllows.length === 0) {
52
- // no allow rule
53
- return false;
54
- }
55
- if (filteredDenies.length === 0 && filteredAllows.some(rule => (0, _sdk.getLiteral)(rule.args[1].value) === true)) {
56
- // any constant true allow rule
57
- return true;
58
- }
59
- return undefined;
60
- }
61
- function forOperation(operation, rules) {
62
- return rules.filter(rule => {
63
- const ops = (0, _sdk.getLiteral)(rule.args[0].value);
64
- if (!ops) {
65
- return false;
32
+ const filteredDenies = forOperation(operation, denies);
33
+ if (filteredDenies.some((rule) => (0, sdk_1.getLiteral)(rule.args[1].value) === true)) {
34
+ // any constant true deny rule
35
+ return false;
36
+ }
37
+ const filteredAllows = forOperation(operation, allows);
38
+ if (filteredAllows.length === 0) {
39
+ // no allow rule
40
+ return false;
66
41
  }
67
- if (ops === 'all') {
68
- return true;
42
+ if (filteredDenies.length === 0 &&
43
+ filteredAllows.some((rule) => (0, sdk_1.getLiteral)(rule.args[1].value) === true)) {
44
+ // any constant true allow rule
45
+ return true;
69
46
  }
70
- const splitOps = ops.split(',').map(p => p.trim());
71
- return splitOps.includes(operation);
72
- });
47
+ return undefined;
73
48
  }
74
- const VALIDATION_ATTRIBUTES = ['@length', '@regex', '@startsWith', '@endsWith', '@email', '@url', '@datetime', '@gt', '@gte', '@lt', '@lte'];
75
- exports.VALIDATION_ATTRIBUTES = VALIDATION_ATTRIBUTES;
49
+ function forOperation(operation, rules) {
50
+ return rules.filter((rule) => {
51
+ const ops = (0, sdk_1.getLiteral)(rule.args[0].value);
52
+ if (!ops) {
53
+ return false;
54
+ }
55
+ if (ops === 'all') {
56
+ return true;
57
+ }
58
+ const splitOps = ops.split(',').map((p) => p.trim());
59
+ return splitOps.includes(operation);
60
+ });
61
+ }
62
+ exports.VALIDATION_ATTRIBUTES = [
63
+ '@length',
64
+ '@regex',
65
+ '@startsWith',
66
+ '@endsWith',
67
+ '@email',
68
+ '@url',
69
+ '@datetime',
70
+ '@gt',
71
+ '@gte',
72
+ '@lt',
73
+ '@lte',
74
+ ];
76
75
  function getIdField(dataModel) {
77
- return dataModel.fields.find(f => f.attributes.some(attr => attr.decl.$refText === '@id'));
76
+ return dataModel.fields.find((f) => f.attributes.some((attr) => attr.decl.$refText === '@id'));
78
77
  }
78
+ exports.getIdField = getIdField;
79
79
  //# sourceMappingURL=ast-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ast-utils.js","names":["extractDataModelsWithAllowRules","model","declarations","filter","d","isDataModel","attributes","some","attr","decl","ref","name","analyzePolicies","dataModel","allows","denies","create","toStaticPolicy","read","update","del","hasFieldValidation","fields","field","VALIDATION_ATTRIBUTES","includes","$refText","delete","allowAll","denyAll","operation","filteredDenies","forOperation","rule","getLiteral","args","value","filteredAllows","length","undefined","rules","ops","splitOps","split","map","p","trim","getIdField","find","f"],"sources":["../../src/utils/ast-utils.ts"],"sourcesContent":["import { DataModel, DataModelAttribute, Model, isDataModel } from '@zenstackhq/language/ast';\nimport { PolicyOperationKind } from '@zenstackhq/runtime';\nimport { getLiteral } from '@zenstackhq/sdk';\n\nexport function extractDataModelsWithAllowRules(model: Model): DataModel[] {\n return model.declarations.filter(\n (d) => isDataModel(d) && d.attributes.some((attr) => attr.decl.ref?.name === '@@allow')\n ) as DataModel[];\n}\n\nexport function analyzePolicies(dataModel: DataModel) {\n const allows = dataModel.attributes.filter((attr) => attr.decl.ref?.name === '@@allow');\n const denies = dataModel.attributes.filter((attr) => attr.decl.ref?.name === '@@deny');\n\n const create = toStaticPolicy('create', allows, denies);\n const read = toStaticPolicy('read', allows, denies);\n const update = toStaticPolicy('update', allows, denies);\n const del = toStaticPolicy('delete', allows, denies);\n const hasFieldValidation = dataModel.fields.some((field) =>\n field.attributes.some((attr) => VALIDATION_ATTRIBUTES.includes(attr.decl.$refText))\n );\n\n return {\n allows,\n denies,\n create,\n read,\n update,\n delete: del,\n allowAll: create === true && read === true && update === true && del === true,\n denyAll: create === false && read === false && update === false && del === false,\n hasFieldValidation,\n };\n}\n\nfunction toStaticPolicy(\n operation: PolicyOperationKind,\n allows: DataModelAttribute[],\n denies: DataModelAttribute[]\n): boolean | undefined {\n const filteredDenies = forOperation(operation, denies);\n if (filteredDenies.some((rule) => getLiteral<boolean>(rule.args[1].value) === true)) {\n // any constant true deny rule\n return false;\n }\n\n const filteredAllows = forOperation(operation, allows);\n if (filteredAllows.length === 0) {\n // no allow rule\n return false;\n }\n\n if (\n filteredDenies.length === 0 &&\n filteredAllows.some((rule) => getLiteral<boolean>(rule.args[1].value) === true)\n ) {\n // any constant true allow rule\n return true;\n }\n return undefined;\n}\n\nfunction forOperation(operation: PolicyOperationKind, rules: DataModelAttribute[]) {\n return rules.filter((rule) => {\n const ops = getLiteral<string>(rule.args[0].value);\n if (!ops) {\n return false;\n }\n if (ops === 'all') {\n return true;\n }\n const splitOps = ops.split(',').map((p) => p.trim());\n return splitOps.includes(operation);\n });\n}\n\nexport const VALIDATION_ATTRIBUTES = [\n '@length',\n '@regex',\n '@startsWith',\n '@endsWith',\n '@email',\n '@url',\n '@datetime',\n '@gt',\n '@gte',\n '@lt',\n '@lte',\n];\n\nexport function getIdField(dataModel: DataModel) {\n return dataModel.fields.find((f) => f.attributes.some((attr) => attr.decl.$refText === '@id'));\n}\n"],"mappings":";;;;;;;;;AAAA;AAEA;AAEO,SAASA,+BAA+B,CAACC,KAAY,EAAe;EACvE,OAAOA,KAAK,CAACC,YAAY,CAACC,MAAM,CAC3BC,CAAC,IAAK,IAAAC,gBAAW,EAACD,CAAC,CAAC,IAAIA,CAAC,CAACE,UAAU,CAACC,IAAI,CAAEC,IAAI;IAAA;IAAA,OAAK,mBAAAA,IAAI,CAACC,IAAI,CAACC,GAAG,mDAAb,eAAeC,IAAI,MAAK,SAAS;EAAA,EAAC,CAC1F;AACL;AAEO,SAASC,eAAe,CAACC,SAAoB,EAAE;EAClD,MAAMC,MAAM,GAAGD,SAAS,CAACP,UAAU,CAACH,MAAM,CAAEK,IAAI;IAAA;IAAA,OAAK,oBAAAA,IAAI,CAACC,IAAI,CAACC,GAAG,oDAAb,gBAAeC,IAAI,MAAK,SAAS;EAAA,EAAC;EACvF,MAAMI,MAAM,GAAGF,SAAS,CAACP,UAAU,CAACH,MAAM,CAAEK,IAAI;IAAA;IAAA,OAAK,oBAAAA,IAAI,CAACC,IAAI,CAACC,GAAG,oDAAb,gBAAeC,IAAI,MAAK,QAAQ;EAAA,EAAC;EAEtF,MAAMK,MAAM,GAAGC,cAAc,CAAC,QAAQ,EAAEH,MAAM,EAAEC,MAAM,CAAC;EACvD,MAAMG,IAAI,GAAGD,cAAc,CAAC,MAAM,EAAEH,MAAM,EAAEC,MAAM,CAAC;EACnD,MAAMI,MAAM,GAAGF,cAAc,CAAC,QAAQ,EAAEH,MAAM,EAAEC,MAAM,CAAC;EACvD,MAAMK,GAAG,GAAGH,cAAc,CAAC,QAAQ,EAAEH,MAAM,EAAEC,MAAM,CAAC;EACpD,MAAMM,kBAAkB,GAAGR,SAAS,CAACS,MAAM,CAACf,IAAI,CAAEgB,KAAK,IACnDA,KAAK,CAACjB,UAAU,CAACC,IAAI,CAAEC,IAAI,IAAKgB,qBAAqB,CAACC,QAAQ,CAACjB,IAAI,CAACC,IAAI,CAACiB,QAAQ,CAAC,CAAC,CACtF;EAED,OAAO;IACHZ,MAAM;IACNC,MAAM;IACNC,MAAM;IACNE,IAAI;IACJC,MAAM;IACNQ,MAAM,EAAEP,GAAG;IACXQ,QAAQ,EAAEZ,MAAM,KAAK,IAAI,IAAIE,IAAI,KAAK,IAAI,IAAIC,MAAM,KAAK,IAAI,IAAIC,GAAG,KAAK,IAAI;IAC7ES,OAAO,EAAEb,MAAM,KAAK,KAAK,IAAIE,IAAI,KAAK,KAAK,IAAIC,MAAM,KAAK,KAAK,IAAIC,GAAG,KAAK,KAAK;IAChFC;EACJ,CAAC;AACL;AAEA,SAASJ,cAAc,CACnBa,SAA8B,EAC9BhB,MAA4B,EAC5BC,MAA4B,EACT;EACnB,MAAMgB,cAAc,GAAGC,YAAY,CAACF,SAAS,EAAEf,MAAM,CAAC;EACtD,IAAIgB,cAAc,CAACxB,IAAI,CAAE0B,IAAI,IAAK,IAAAC,eAAU,EAAUD,IAAI,CAACE,IAAI,CAAC,CAAC,CAAC,CAACC,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE;IACjF;IACA,OAAO,KAAK;EAChB;EAEA,MAAMC,cAAc,GAAGL,YAAY,CAACF,SAAS,EAAEhB,MAAM,CAAC;EACtD,IAAIuB,cAAc,CAACC,MAAM,KAAK,CAAC,EAAE;IAC7B;IACA,OAAO,KAAK;EAChB;EAEA,IACIP,cAAc,CAACO,MAAM,KAAK,CAAC,IAC3BD,cAAc,CAAC9B,IAAI,CAAE0B,IAAI,IAAK,IAAAC,eAAU,EAAUD,IAAI,CAACE,IAAI,CAAC,CAAC,CAAC,CAACC,KAAK,CAAC,KAAK,IAAI,CAAC,EACjF;IACE;IACA,OAAO,IAAI;EACf;EACA,OAAOG,SAAS;AACpB;AAEA,SAASP,YAAY,CAACF,SAA8B,EAAEU,KAA2B,EAAE;EAC/E,OAAOA,KAAK,CAACrC,MAAM,CAAE8B,IAAI,IAAK;IAC1B,MAAMQ,GAAG,GAAG,IAAAP,eAAU,EAASD,IAAI,CAACE,IAAI,CAAC,CAAC,CAAC,CAACC,KAAK,CAAC;IAClD,IAAI,CAACK,GAAG,EAAE;MACN,OAAO,KAAK;IAChB;IACA,IAAIA,GAAG,KAAK,KAAK,EAAE;MACf,OAAO,IAAI;IACf;IACA,MAAMC,QAAQ,GAAGD,GAAG,CAACE,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,IAAI,EAAE,CAAC;IACpD,OAAOJ,QAAQ,CAACjB,QAAQ,CAACK,SAAS,CAAC;EACvC,CAAC,CAAC;AACN;AAEO,MAAMN,qBAAqB,GAAG,CACjC,SAAS,EACT,QAAQ,EACR,aAAa,EACb,WAAW,EACX,QAAQ,EACR,MAAM,EACN,WAAW,EACX,KAAK,EACL,MAAM,EACN,KAAK,EACL,MAAM,CACT;AAAC;AAEK,SAASuB,UAAU,CAAClC,SAAoB,EAAE;EAC7C,OAAOA,SAAS,CAACS,MAAM,CAAC0B,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAAC3C,UAAU,CAACC,IAAI,CAAEC,IAAI,IAAKA,IAAI,CAACC,IAAI,CAACiB,QAAQ,KAAK,KAAK,CAAC,CAAC;AAClG"}
1
+ {"version":3,"file":"ast-utils.js","sourceRoot":"","sources":["../../src/utils/ast-utils.ts"],"names":[],"mappings":";;;AAAA,kDAA6F;AAE7F,yCAA6C;AAE7C,SAAgB,+BAA+B,CAAC,KAAY;IACxD,OAAO,KAAK,CAAC,YAAY,CAAC,MAAM,CAC5B,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,iBAAW,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,GAAG,0CAAE,IAAI,MAAK,SAAS,CAAA,EAAA,CAAC,CAC3E,CAAC;AACrB,CAAC;AAJD,0EAIC;AAED,SAAgB,eAAe,CAAC,SAAoB;IAChD,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,GAAG,0CAAE,IAAI,MAAK,SAAS,CAAA,EAAA,CAAC,CAAC;IACxF,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,GAAG,0CAAE,IAAI,MAAK,QAAQ,CAAA,EAAA,CAAC,CAAC;IAEvF,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,kBAAkB,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACvD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,6BAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CACtF,CAAC;IAEF,OAAO;QACH,MAAM;QACN,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,MAAM,EAAE,GAAG;QACX,QAAQ,EAAE,MAAM,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI;QAC7E,OAAO,EAAE,MAAM,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,MAAM,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK;QAChF,kBAAkB;KACrB,CAAC;AACN,CAAC;AAvBD,0CAuBC;AAED,SAAS,cAAc,CACnB,SAA8B,EAC9B,MAA4B,EAC5B,MAA4B;IAE5B,MAAM,cAAc,GAAG,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACvD,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,gBAAU,EAAU,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE;QACjF,8BAA8B;QAC9B,OAAO,KAAK,CAAC;KAChB;IAED,MAAM,cAAc,GAAG,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACvD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,gBAAgB;QAChB,OAAO,KAAK,CAAC;KAChB;IAED,IACI,cAAc,CAAC,MAAM,KAAK,CAAC;QAC3B,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,gBAAU,EAAU,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,EACjF;QACE,+BAA+B;QAC/B,OAAO,IAAI,CAAC;KACf;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,YAAY,CAAC,SAA8B,EAAE,KAA2B;IAC7E,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACzB,MAAM,GAAG,GAAG,IAAA,gBAAU,EAAS,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,EAAE;YACN,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,GAAG,KAAK,KAAK,EAAE;YACf,OAAO,IAAI,CAAC;SACf;QACD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,OAAO,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACP,CAAC;AAEY,QAAA,qBAAqB,GAAG;IACjC,SAAS;IACT,QAAQ;IACR,aAAa;IACb,WAAW;IACX,QAAQ;IACR,MAAM;IACN,WAAW;IACX,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;CACT,CAAC;AAEF,SAAgB,UAAU,CAAC,SAAoB;IAC3C,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC;AACnG,CAAC;AAFD,gCAEC"}
@@ -1,22 +1,13 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.execSync = execSync;
7
- var _child_process = require("child_process");
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.execSync = void 0;
4
+ const child_process_1 = require("child_process");
8
5
  /**
9
6
  * Utility for executing command synchronously and prints outputs on current console
10
7
  */
11
8
  function execSync(cmd, stdio = 'inherit', env) {
12
- const mergedEnv = {
13
- ...process.env,
14
- ...env
15
- };
16
- (0, _child_process.execSync)(cmd, {
17
- encoding: 'utf-8',
18
- stdio,
19
- env: mergedEnv
20
- });
9
+ const mergedEnv = Object.assign(Object.assign({}, process.env), env);
10
+ (0, child_process_1.execSync)(cmd, { encoding: 'utf-8', stdio, env: mergedEnv });
21
11
  }
12
+ exports.execSync = execSync;
22
13
  //# sourceMappingURL=exec-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"exec-utils.js","names":["execSync","cmd","stdio","env","mergedEnv","process","_exec","encoding"],"sources":["../../src/utils/exec-utils.ts"],"sourcesContent":["import { execSync as _exec, StdioOptions } from 'child_process';\n\n/**\n * Utility for executing command synchronously and prints outputs on current console\n */\nexport function execSync(cmd: string, stdio: StdioOptions = 'inherit', env?: Record<string, string>): void {\n const mergedEnv = { ...process.env, ...env };\n _exec(cmd, { encoding: 'utf-8', stdio, env: mergedEnv });\n}\n"],"mappings":";;;;;;AAAA;AAEA;AACA;AACA;AACO,SAASA,QAAQ,CAACC,GAAW,EAAEC,KAAmB,GAAG,SAAS,EAAEC,GAA4B,EAAQ;EACvG,MAAMC,SAAS,GAAG;IAAE,GAAGC,OAAO,CAACF,GAAG;IAAE,GAAGA;EAAI,CAAC;EAC5C,IAAAG,uBAAK,EAACL,GAAG,EAAE;IAAEM,QAAQ,EAAE,OAAO;IAAEL,KAAK;IAAEC,GAAG,EAAEC;EAAU,CAAC,CAAC;AAC5D"}
1
+ {"version":3,"file":"exec-utils.js","sourceRoot":"","sources":["../../src/utils/exec-utils.ts"],"names":[],"mappings":";;;AAAA,iDAAgE;AAEhE;;GAEG;AACH,SAAgB,QAAQ,CAAC,GAAW,EAAE,QAAsB,SAAS,EAAE,GAA4B;IAC/F,MAAM,SAAS,mCAAQ,OAAO,CAAC,GAAG,GAAK,GAAG,CAAE,CAAC;IAC7C,IAAA,wBAAK,EAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;AAC7D,CAAC;AAHD,4BAGC"}
@@ -1,43 +1,46 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ensurePackage = ensurePackage;
7
- exports.installPackage = installPackage;
8
- var _fs = _interopRequireDefault(require("fs"));
9
- var _path = _interopRequireDefault(require("path"));
10
- var _execUtils = require("./exec-utils");
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ensurePackage = exports.installPackage = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const exec_utils_1 = require("./exec-utils");
12
10
  function getPackageManager(projectPath = '.') {
13
- if (_fs.default.existsSync(_path.default.join(projectPath, 'yarn.lock'))) {
14
- return 'yarn';
15
- } else if (_fs.default.existsSync(_path.default.join(projectPath, 'pnpm-lock.yaml'))) {
16
- return 'pnpm';
17
- } else {
18
- return 'npm';
19
- }
11
+ if (fs_1.default.existsSync(path_1.default.join(projectPath, 'yarn.lock'))) {
12
+ return 'yarn';
13
+ }
14
+ else if (fs_1.default.existsSync(path_1.default.join(projectPath, 'pnpm-lock.yaml'))) {
15
+ return 'pnpm';
16
+ }
17
+ else {
18
+ return 'npm';
19
+ }
20
20
  }
21
21
  function installPackage(pkg, dev, pkgManager = undefined, tag = 'latest', projectPath = '.') {
22
- const manager = pkgManager ?? getPackageManager(projectPath);
23
- console.log(`Installing package "${pkg}" with ${manager}`);
24
- switch (manager) {
25
- case 'yarn':
26
- (0, _execUtils.execSync)(`yarn --cwd "${projectPath}" add ${pkg}@${tag} ${dev ? ' --dev' : ''} --ignore-engines`);
27
- break;
28
- case 'pnpm':
29
- (0, _execUtils.execSync)(`pnpm add -C "${projectPath}" ${dev ? ' --save-dev' : ''} ${pkg}@${tag}`);
30
- break;
31
- default:
32
- (0, _execUtils.execSync)(`npm install --prefix "${projectPath}" ${dev ? ' --save-dev' : ''} ${pkg}@${tag}`);
33
- break;
34
- }
22
+ const manager = pkgManager !== null && pkgManager !== void 0 ? pkgManager : getPackageManager(projectPath);
23
+ console.log(`Installing package "${pkg}" with ${manager}`);
24
+ switch (manager) {
25
+ case 'yarn':
26
+ (0, exec_utils_1.execSync)(`yarn --cwd "${projectPath}" add ${pkg}@${tag} ${dev ? ' --dev' : ''} --ignore-engines`);
27
+ break;
28
+ case 'pnpm':
29
+ (0, exec_utils_1.execSync)(`pnpm add -C "${projectPath}" ${dev ? ' --save-dev' : ''} ${pkg}@${tag}`);
30
+ break;
31
+ default:
32
+ (0, exec_utils_1.execSync)(`npm install --prefix "${projectPath}" ${dev ? ' --save-dev' : ''} ${pkg}@${tag}`);
33
+ break;
34
+ }
35
35
  }
36
+ exports.installPackage = installPackage;
36
37
  function ensurePackage(pkg, dev, pkgManager = undefined, projectPath = '.') {
37
- try {
38
- require(pkg);
39
- } catch {
40
- installPackage(pkg, dev, pkgManager, projectPath);
41
- }
38
+ try {
39
+ require(pkg);
40
+ }
41
+ catch (_a) {
42
+ installPackage(pkg, dev, pkgManager, projectPath);
43
+ }
42
44
  }
45
+ exports.ensurePackage = ensurePackage;
43
46
  //# sourceMappingURL=pkg-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pkg-utils.js","names":["getPackageManager","projectPath","fs","existsSync","path","join","installPackage","pkg","dev","pkgManager","undefined","tag","manager","console","log","execSync","ensurePackage","require"],"sources":["../../src/utils/pkg-utils.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { execSync } from './exec-utils';\n\nexport type PackageManagers = 'npm' | 'yarn' | 'pnpm';\n\nfunction getPackageManager(projectPath = '.'): PackageManagers {\n if (fs.existsSync(path.join(projectPath, 'yarn.lock'))) {\n return 'yarn';\n } else if (fs.existsSync(path.join(projectPath, 'pnpm-lock.yaml'))) {\n return 'pnpm';\n } else {\n return 'npm';\n }\n}\n\nexport function installPackage(\n pkg: string,\n dev: boolean,\n pkgManager: PackageManagers | undefined = undefined,\n tag = 'latest',\n projectPath = '.'\n) {\n const manager = pkgManager ?? getPackageManager(projectPath);\n console.log(`Installing package \"${pkg}\" with ${manager}`);\n switch (manager) {\n case 'yarn':\n execSync(`yarn --cwd \"${projectPath}\" add ${pkg}@${tag} ${dev ? ' --dev' : ''} --ignore-engines`);\n break;\n\n case 'pnpm':\n execSync(`pnpm add -C \"${projectPath}\" ${dev ? ' --save-dev' : ''} ${pkg}@${tag}`);\n break;\n\n default:\n execSync(`npm install --prefix \"${projectPath}\" ${dev ? ' --save-dev' : ''} ${pkg}@${tag}`);\n break;\n }\n}\n\nexport function ensurePackage(\n pkg: string,\n dev: boolean,\n pkgManager: PackageManagers | undefined = undefined,\n projectPath = '.'\n) {\n try {\n require(pkg);\n } catch {\n installPackage(pkg, dev, pkgManager, projectPath);\n }\n}\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAAwC;AAIxC,SAASA,iBAAiB,CAACC,WAAW,GAAG,GAAG,EAAmB;EAC3D,IAAIC,WAAE,CAACC,UAAU,CAACC,aAAI,CAACC,IAAI,CAACJ,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE;IACpD,OAAO,MAAM;EACjB,CAAC,MAAM,IAAIC,WAAE,CAACC,UAAU,CAACC,aAAI,CAACC,IAAI,CAACJ,WAAW,EAAE,gBAAgB,CAAC,CAAC,EAAE;IAChE,OAAO,MAAM;EACjB,CAAC,MAAM;IACH,OAAO,KAAK;EAChB;AACJ;AAEO,SAASK,cAAc,CAC1BC,GAAW,EACXC,GAAY,EACZC,UAAuC,GAAGC,SAAS,EACnDC,GAAG,GAAG,QAAQ,EACdV,WAAW,GAAG,GAAG,EACnB;EACE,MAAMW,OAAO,GAAGH,UAAU,IAAIT,iBAAiB,CAACC,WAAW,CAAC;EAC5DY,OAAO,CAACC,GAAG,CAAE,uBAAsBP,GAAI,UAASK,OAAQ,EAAC,CAAC;EAC1D,QAAQA,OAAO;IACX,KAAK,MAAM;MACP,IAAAG,mBAAQ,EAAE,eAAcd,WAAY,SAAQM,GAAI,IAAGI,GAAI,IAAGH,GAAG,GAAG,QAAQ,GAAG,EAAG,mBAAkB,CAAC;MACjG;IAEJ,KAAK,MAAM;MACP,IAAAO,mBAAQ,EAAE,gBAAed,WAAY,KAAIO,GAAG,GAAG,aAAa,GAAG,EAAG,IAAGD,GAAI,IAAGI,GAAI,EAAC,CAAC;MAClF;IAEJ;MACI,IAAAI,mBAAQ,EAAE,yBAAwBd,WAAY,KAAIO,GAAG,GAAG,aAAa,GAAG,EAAG,IAAGD,GAAI,IAAGI,GAAI,EAAC,CAAC;MAC3F;EAAM;AAElB;AAEO,SAASK,aAAa,CACzBT,GAAW,EACXC,GAAY,EACZC,UAAuC,GAAGC,SAAS,EACnDT,WAAW,GAAG,GAAG,EACnB;EACE,IAAI;IACAgB,OAAO,CAACV,GAAG,CAAC;EAChB,CAAC,CAAC,MAAM;IACJD,cAAc,CAACC,GAAG,EAAEC,GAAG,EAAEC,UAAU,EAAER,WAAW,CAAC;EACrD;AACJ"}
1
+ {"version":3,"file":"pkg-utils.js","sourceRoot":"","sources":["../../src/utils/pkg-utils.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,6CAAwC;AAIxC,SAAS,iBAAiB,CAAC,WAAW,GAAG,GAAG;IACxC,IAAI,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE;QACpD,OAAO,MAAM,CAAC;KACjB;SAAM,IAAI,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,EAAE;QAChE,OAAO,MAAM,CAAC;KACjB;SAAM;QACH,OAAO,KAAK,CAAC;KAChB;AACL,CAAC;AAED,SAAgB,cAAc,CAC1B,GAAW,EACX,GAAY,EACZ,aAA0C,SAAS,EACnD,GAAG,GAAG,QAAQ,EACd,WAAW,GAAG,GAAG;IAEjB,MAAM,OAAO,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,UAAU,OAAO,EAAE,CAAC,CAAC;IAC3D,QAAQ,OAAO,EAAE;QACb,KAAK,MAAM;YACP,IAAA,qBAAQ,EAAC,eAAe,WAAW,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;YAClG,MAAM;QAEV,KAAK,MAAM;YACP,IAAA,qBAAQ,EAAC,gBAAgB,WAAW,KAAK,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;YACnF,MAAM;QAEV;YACI,IAAA,qBAAQ,EAAC,yBAAyB,WAAW,KAAK,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;YAC5F,MAAM;KACb;AACL,CAAC;AAtBD,wCAsBC;AAED,SAAgB,aAAa,CACzB,GAAW,EACX,GAAY,EACZ,aAA0C,SAAS,EACnD,WAAW,GAAG,GAAG;IAEjB,IAAI;QACA,OAAO,CAAC,GAAG,CAAC,CAAC;KAChB;IAAC,WAAM;QACJ,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;KACrD;AACL,CAAC;AAXD,sCAWC"}
@@ -1,15 +1,14 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getVersion = getVersion;
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getVersion = void 0;
7
4
  /* eslint-disable @typescript-eslint/no-var-requires */
8
5
  function getVersion() {
9
- try {
10
- return require('../package.json').version;
11
- } catch {
12
- return require('../../package.json').version;
13
- }
6
+ try {
7
+ return require('../package.json').version;
8
+ }
9
+ catch (_a) {
10
+ return require('../../package.json').version;
11
+ }
14
12
  }
13
+ exports.getVersion = getVersion;
15
14
  //# sourceMappingURL=version-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version-utils.js","names":["getVersion","require","version"],"sources":["../../src/utils/version-utils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nexport function getVersion() {\n try {\n return require('../package.json').version;\n } catch {\n return require('../../package.json').version;\n }\n}\n"],"mappings":";;;;;;AAAA;AACO,SAASA,UAAU,GAAG;EACzB,IAAI;IACA,OAAOC,OAAO,CAAC,iBAAiB,CAAC,CAACC,OAAO;EAC7C,CAAC,CAAC,MAAM;IACJ,OAAOD,OAAO,CAAC,oBAAoB,CAAC,CAACC,OAAO;EAChD;AACJ"}
1
+ {"version":3,"file":"version-utils.js","sourceRoot":"","sources":["../../src/utils/version-utils.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,SAAgB,UAAU;IACtB,IAAI;QACA,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;KAC7C;IAAC,WAAM;QACJ,OAAO,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;KAChD;AACL,CAAC;AAND,gCAMC"}
package/global.d.js DELETED
@@ -1 +0,0 @@
1
- "use strict";
package/global.d.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"global.d.js","names":[],"sources":["../src/global.d.ts"],"sourcesContent":["declare module 'env' {\n export const TELEMETRY_TRACKING_TOKEN: string;\n}\n"],"mappings":""}