@servicelabsco/slabs-access-manager 1.0.70 → 1.0.73

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 (137) hide show
  1. package/dist/access/controllers/report.view.controller.d.ts +30 -12
  2. package/dist/access/controllers/report.view.controller.js +1 -1
  3. package/dist/access/controllers/report.view.controller.js.map +1 -1
  4. package/dist/access/dtos/report.view.query.dto.d.ts +1 -0
  5. package/dist/access/dtos/report.view.query.dto.js +20 -0
  6. package/dist/access/dtos/report.view.query.dto.js.map +1 -1
  7. package/dist/access/entities/business.material.view.entity.d.ts +9 -0
  8. package/dist/access/entities/business.material.view.entity.js +44 -0
  9. package/dist/access/entities/business.material.view.entity.js.map +1 -0
  10. package/dist/access/entities/index.d.ts +1 -0
  11. package/dist/access/entities/index.js +1 -0
  12. package/dist/access/entities/index.js.map +1 -1
  13. package/dist/access/es6.classes.d.ts +10 -3
  14. package/dist/access/es6.classes.js +6 -0
  15. package/dist/access/es6.classes.js.map +1 -1
  16. package/dist/access/libraries/index.d.ts +1 -0
  17. package/dist/access/libraries/index.js +1 -0
  18. package/dist/access/libraries/index.js.map +1 -1
  19. package/dist/access/libraries/report.view.enablement.d.ts +11 -0
  20. package/dist/access/libraries/report.view.enablement.js +49 -0
  21. package/dist/access/libraries/report.view.enablement.js.map +1 -0
  22. package/dist/access/libraries/report.view.query.compiler.d.ts +35 -2
  23. package/dist/access/libraries/report.view.query.compiler.js +274 -46
  24. package/dist/access/libraries/report.view.query.compiler.js.map +1 -1
  25. package/dist/access/middlewares/mcp.rate.limit.middleware.d.ts +2 -0
  26. package/dist/access/middlewares/mcp.rate.limit.middleware.js +27 -6
  27. package/dist/access/middlewares/mcp.rate.limit.middleware.js.map +1 -1
  28. package/dist/access/services/listing.preference.service.js +11 -1
  29. package/dist/access/services/listing.preference.service.js.map +1 -1
  30. package/dist/access/services/listing.service.d.ts +3 -1
  31. package/dist/access/services/listing.service.js +7 -6
  32. package/dist/access/services/listing.service.js.map +1 -1
  33. package/dist/access/services/oauth.as.service.d.ts +1 -0
  34. package/dist/access/services/oauth.as.service.js +1 -0
  35. package/dist/access/services/oauth.as.service.js.map +1 -1
  36. package/dist/access/services/report.view.service.d.ts +34 -12
  37. package/dist/access/services/report.view.service.js +81 -14
  38. package/dist/access/services/report.view.service.js.map +1 -1
  39. package/dist/access/subscribers/business.material.view.subscriber.d.ts +8 -0
  40. package/dist/access/subscribers/business.material.view.subscriber.js +31 -0
  41. package/dist/access/subscribers/business.material.view.subscriber.js.map +1 -0
  42. package/dist/access/subscribers/index.d.ts +1 -0
  43. package/dist/access/subscribers/index.js +1 -0
  44. package/dist/access/subscribers/index.js.map +1 -1
  45. package/dist/accessUtility/es6.classes.d.ts +2 -3
  46. package/dist/accessUtility/es6.classes.js +0 -2
  47. package/dist/accessUtility/es6.classes.js.map +1 -1
  48. package/dist/accessUtility/libraries/process.report.listing.d.ts +1 -1
  49. package/dist/accessUtility/services/es6.service.d.ts +1 -3
  50. package/dist/accessUtility/services/es6.service.js +2 -6
  51. package/dist/accessUtility/services/es6.service.js.map +1 -1
  52. package/dist/accessUtility/services/index.d.ts +0 -1
  53. package/dist/accessUtility/services/index.js +0 -1
  54. package/dist/accessUtility/services/index.js.map +1 -1
  55. package/dist/app.controller.d.ts +1 -2
  56. package/dist/app.controller.js +1 -2
  57. package/dist/app.controller.js.map +1 -1
  58. package/dist/config/entity.constants.d.ts +2 -0
  59. package/dist/config/entity.constants.js +2 -0
  60. package/dist/config/entity.constants.js.map +1 -1
  61. package/dist/development/controllers/development.catalog.controller.d.ts +25 -2
  62. package/dist/development/controllers/development.catalog.controller.js +32 -0
  63. package/dist/development/controllers/development.catalog.controller.js.map +1 -1
  64. package/dist/development/dtos/material.view.catalog.attributes.dto.d.ts +16 -0
  65. package/dist/development/dtos/material.view.catalog.attributes.dto.js +63 -1
  66. package/dist/development/dtos/material.view.catalog.attributes.dto.js.map +1 -1
  67. package/dist/development/services/admin.report.view.service.d.ts +25 -1
  68. package/dist/development/services/admin.report.view.service.js +195 -13
  69. package/dist/development/services/admin.report.view.service.js.map +1 -1
  70. package/dist/mcp/admin/tools/admin.tool.registry.js +6 -0
  71. package/dist/mcp/admin/tools/admin.tool.registry.js.map +1 -1
  72. package/dist/mcp/admin/tools/catalog/admin.column.describe.tool.js +1 -1
  73. package/dist/mcp/admin/tools/catalog/admin.column.describe.tool.js.map +1 -1
  74. package/dist/mcp/admin/tools/catalog/admin.view.business.clear.tool.d.ts +18 -0
  75. package/dist/mcp/admin/tools/catalog/admin.view.business.clear.tool.js +27 -0
  76. package/dist/mcp/admin/tools/catalog/admin.view.business.clear.tool.js.map +1 -0
  77. package/dist/mcp/admin/tools/catalog/admin.view.business.set.tool.d.ts +20 -0
  78. package/dist/mcp/admin/tools/catalog/admin.view.business.set.tool.js +28 -0
  79. package/dist/mcp/admin/tools/catalog/admin.view.business.set.tool.js.map +1 -0
  80. package/dist/mcp/admin/tools/catalog/admin.view.businesses.tool.d.ts +17 -0
  81. package/dist/mcp/admin/tools/catalog/admin.view.businesses.tool.js +23 -0
  82. package/dist/mcp/admin/tools/catalog/admin.view.businesses.tool.js.map +1 -0
  83. package/dist/mcp/admin/tools/catalog/admin.view.columns.sync.tool.d.ts +3 -1
  84. package/dist/mcp/admin/tools/catalog/admin.view.columns.sync.tool.js +5 -1
  85. package/dist/mcp/admin/tools/catalog/admin.view.columns.sync.tool.js.map +1 -1
  86. package/dist/mcp/admin/tools/catalog/admin.view.update.tool.d.ts +1 -1
  87. package/dist/mcp/admin/tools/catalog/admin.view.update.tool.js +2 -2
  88. package/dist/mcp/admin/tools/catalog/admin.view.update.tool.js.map +1 -1
  89. package/dist/mcp/admin/tools/catalog/admin.views.list.tool.js.map +1 -1
  90. package/dist/mcp/admin/tools/catalog/index.d.ts +3 -0
  91. package/dist/mcp/admin/tools/catalog/index.js +3 -0
  92. package/dist/mcp/admin/tools/catalog/index.js.map +1 -1
  93. package/dist/mcp/auth/index.d.ts +2 -0
  94. package/dist/mcp/auth/index.js +2 -0
  95. package/dist/mcp/auth/index.js.map +1 -1
  96. package/dist/mcp/auth/mcp.execution.context.d.ts +8 -0
  97. package/dist/mcp/auth/mcp.execution.context.js +44 -0
  98. package/dist/mcp/auth/mcp.execution.context.js.map +1 -0
  99. package/dist/mcp/auth/mcp.scope.policy.d.ts +12 -0
  100. package/dist/mcp/auth/mcp.scope.policy.js +28 -0
  101. package/dist/mcp/auth/mcp.scope.policy.js.map +1 -0
  102. package/dist/mcp/es6.classes.d.ts +11 -2
  103. package/dist/mcp/es6.classes.js +9 -1
  104. package/dist/mcp/es6.classes.js.map +1 -1
  105. package/dist/mcp/http/business.mcp.controller.d.ts +1 -3
  106. package/dist/mcp/http/business.mcp.controller.js +7 -19
  107. package/dist/mcp/http/business.mcp.controller.js.map +1 -1
  108. package/dist/mcp/interfaces/mcp.tool.interface.d.ts +1 -0
  109. package/dist/mcp/logging/mcp.call.log.interceptor.js +1 -0
  110. package/dist/mcp/logging/mcp.call.log.interceptor.js.map +1 -1
  111. package/dist/mcp/logging/sanitize.mcp.call.log.d.ts +25 -0
  112. package/dist/mcp/logging/sanitize.mcp.call.log.js +60 -1
  113. package/dist/mcp/logging/sanitize.mcp.call.log.js.map +1 -1
  114. package/dist/mcp/mentities/mcp.call.log.mentity.d.ts +1 -0
  115. package/dist/mcp/mentities/mcp.call.log.mentity.js +4 -0
  116. package/dist/mcp/mentities/mcp.call.log.mentity.js.map +1 -1
  117. package/dist/mcp/slabs.mcp.server.js +5 -1
  118. package/dist/mcp/slabs.mcp.server.js.map +1 -1
  119. package/dist/mcp/tools/mcp.tool.d.ts +1 -0
  120. package/dist/mcp/tools/mcp.tool.js +9 -0
  121. package/dist/mcp/tools/mcp.tool.js.map +1 -1
  122. package/dist/mcp/tools/view.describe.tool.d.ts +1 -1
  123. package/dist/mcp/tools/view.describe.tool.js +1 -1
  124. package/dist/mcp/tools/view.describe.tool.js.map +1 -1
  125. package/dist/mcp/tools/view.query.tool.d.ts +9 -5
  126. package/dist/mcp/tools/view.query.tool.js +11 -3
  127. package/dist/mcp/tools/view.query.tool.js.map +1 -1
  128. package/dist/mcp/tools/views.list.tool.d.ts +1 -1
  129. package/dist/mcp/tools/views.list.tool.js +1 -1
  130. package/dist/mcp/tools/views.list.tool.js.map +1 -1
  131. package/dist/migrations/1787174933444-CreateBusinessMaterialViewTable.d.ts +5 -0
  132. package/dist/migrations/1787174933444-CreateBusinessMaterialViewTable.js +21 -0
  133. package/dist/migrations/1787174933444-CreateBusinessMaterialViewTable.js.map +1 -0
  134. package/package.json +4 -1
  135. package/dist/accessUtility/services/pdf.service.d.ts +0 -14
  136. package/dist/accessUtility/services/pdf.service.js +0 -89
  137. package/dist/accessUtility/services/pdf.service.js.map +0 -1
@@ -7,11 +7,15 @@ const filterSchema = zod_1.z.object({
7
7
  column: zod_1.z.string(),
8
8
  op: zod_1.z
9
9
  .string()
10
- .describe('Closed grammar: eq, neq, in, not_in, gt, gte, lt, lte, between, contains, is_null, not_null. Date values may be @today or @today-30d.'),
10
+ .describe('Closed grammar: eq, neq, in, not_in, gt, gte, lt, lte, between, contains, is_null, not_null. Date values may be @today, @today-30d, @today-3m, @month_start, @quarter_start, or @fy_start (Indian FY, 1 April).'),
11
11
  value: zod_1.z.unknown().optional(),
12
12
  });
13
13
  const inputSchema = {
14
14
  name: zod_1.z.string().min(2).max(40).describe('View name from views_list / view_describe.'),
15
+ join: zod_1.z
16
+ .union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())])
17
+ .optional()
18
+ .describe('Catalog-declared relationship name(s) from view_describe.relationships. v1: exactly one (string or one-element array). Compiler emits the LEFT JOIN; do not send ON conditions. Joined columns are <relationship>.<column>. Unmatched rows yield nulls for <rel>.*'),
15
19
  columns: zod_1.z.array(zod_1.z.string()).optional().describe('Columns to return in listing mode. Omit when aggregating.'),
16
20
  filters: zod_1.z.array(filterSchema).optional(),
17
21
  group_by: zod_1.z
@@ -28,18 +32,22 @@ const inputSchema = {
28
32
  sort: zod_1.z.array(zod_1.z.object({ by: zod_1.z.string(), dir: zod_1.z.enum(['asc', 'desc']).optional() })).optional(),
29
33
  limit: zod_1.z.number().int().min(1).max(500).optional(),
30
34
  offset: zod_1.z.number().int().min(0).max(10000).optional(),
35
+ intent: zod_1.z
36
+ .string()
37
+ .optional()
38
+ .describe('The question you are answering for the user, verbatim where possible. Used only for analytics — never affects the query result.'),
31
39
  };
32
40
  class ViewQueryTool extends mcp_tool_1.McpTool {
33
41
  constructor() {
34
42
  super(...arguments);
35
43
  this.name = 'view_query';
36
44
  this.title = 'Query analytical view';
37
- this.description = 'Run a structured analytical query against a view: filters, group-by (including month/quarter date buckets), and aggregates (sum, count, avg, min, max). Call views_list then view_describe (read the grammar block and example_queries) before querying. Use contains (bare string, not LIKE). Relative dates: @today / @today-30d — do not compute today yourself. Enum filters accept labels. Results include format hints and refreshed_at. Not for fetching individual records — use listing tools for that.';
45
+ this.description = 'Run a structured analytical query against a view: filters, group-by (including month/quarter date buckets), aggregates (sum, count, avg, min, max), and at most one catalog-declared join. Call views_list then view_describe (read the grammar block, relationships, and example_queries) before querying. Join with join: "<relationship name>" and address joined columns as <rel>.<column>. Use contains (bare string, not LIKE). Relative dates: @today / @today-30d / @today-3m / @month_start / @quarter_start / @fy_start (1 April, Indian FY) — do not compute today or period boundaries yourself. Enum filters accept labels. Pass intent as the user\'s question, verbatim where possible — analytics only, never affects the result. Results include format hints and refreshed_at. Not for fetching individual records — use listing tools for that.';
38
46
  this.inputSchema = inputSchema;
39
47
  this.readOnly = true;
40
48
  }
41
49
  execute(args) {
42
- const { name, ...body } = args;
50
+ const { name, intent: _intent, ...body } = args;
43
51
  return this.run(() => this.client.request({
44
52
  method: 'POST',
45
53
  path: `v1/b/report-views/${encodeURIComponent(name)}/query`,
@@ -1 +1 @@
1
- {"version":3,"file":"view.query.tool.js","sourceRoot":"","sources":["../../../src/mcp/tools/view.query.tool.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,yCAAqC;AAErC,MAAM,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,EAAE,EAAE,OAAC;SACA,MAAM,EAAE;SACR,QAAQ,CACL,uIAAuI,CAC1I;IACL,KAAK,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG;IAChB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACtF,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;IAC7G,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;IACzC,QAAQ,EAAE,OAAC;SACN,KAAK,CAAC,OAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;SAC/G,QAAQ,EAAE;SACV,QAAQ,CAAC,oDAAoD,CAAC;IACnE,UAAU,EAAE,OAAC;SACR,KAAK,CACF,OAAC,CAAC,MAAM,CAAC;QACL,EAAE,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACnE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC5B,CAAC,CACL;SACA,QAAQ,EAAE;IACf,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/F,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAClD,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;CACxD,CAAC;AAgBF,MAAa,aAAc,SAAQ,kBAAuB;IAA1D;;QACa,SAAI,GAAG,YAAY,CAAC;QACpB,UAAK,GAAG,uBAAuB,CAAC;QAChC,gBAAW,GAChB,kfAAkf,CAAC;QAC9e,gBAAW,GAAG,WAAW,CAAC;QAChB,aAAQ,GAAG,IAAI,CAAC;IAYvC,CAAC;IAVG,OAAO,CAAC,IAAoB;QACxB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CACjB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAChB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,qBAAqB,kBAAkB,CAAC,IAAI,CAAC,QAAQ;YAC3D,IAAI;SACP,CAAC,CACL,CAAC;IACN,CAAC;CACJ;AAlBD,sCAkBC"}
1
+ {"version":3,"file":"view.query.tool.js","sourceRoot":"","sources":["../../../src/mcp/tools/view.query.tool.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,yCAAqC;AAErC,MAAM,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,EAAE,EAAE,OAAC;SACA,MAAM,EAAE;SACR,QAAQ,CACL,iNAAiN,CACpN;IACL,KAAK,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG;IAChB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACtF,IAAI,EAAE,OAAC;SACF,KAAK,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SACxC,QAAQ,EAAE;SACV,QAAQ,CACL,oQAAoQ,CACvQ;IACL,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;IAC7G,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;IACzC,QAAQ,EAAE,OAAC;SACN,KAAK,CAAC,OAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;SAC/G,QAAQ,EAAE;SACV,QAAQ,CAAC,oDAAoD,CAAC;IACnE,UAAU,EAAE,OAAC;SACR,KAAK,CACF,OAAC,CAAC,MAAM,CAAC;QACL,EAAE,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACnE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC5B,CAAC,CACL;SACA,QAAQ,EAAE;IACf,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/F,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAClD,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;IACrD,MAAM,EAAE,OAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,iIAAiI,CAAC;CACnJ,CAAC;AAkBF,MAAa,aAAc,SAAQ,kBAAuB;IAA1D;;QACa,SAAI,GAAG,YAAY,CAAC;QACpB,UAAK,GAAG,uBAAuB,CAAC;QAChC,gBAAW,GAChB,o0BAAo0B,CAAC;QACh0B,gBAAW,GAAG,WAAW,CAAC;QAChB,aAAQ,GAAG,IAAI,CAAC;IAYvC,CAAC;IAVG,OAAO,CAAC,IAAoB;QACxB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QAChD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CACjB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAChB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,qBAAqB,kBAAkB,CAAC,IAAI,CAAC,QAAQ;YAC3D,IAAI;SACP,CAAC,CACL,CAAC;IACN,CAAC;CACJ;AAlBD,sCAkBC"}
@@ -3,7 +3,7 @@ import { McpTool } from './mcp.tool';
3
3
  export declare class ViewsListTool extends McpTool<Record<string, never>> {
4
4
  readonly name = "views_list";
5
5
  readonly title = "List analytical views";
6
- readonly description = "Discover the analytical views available for answering aggregate and analytical questions about your business \u2014 expenses, purchase orders, and related domains. Returns each view's name, title, what it answers, and its data grain. This is the reporting layer: prefer it over listing tools whenever the question involves totals, breakdowns, comparisons, or trends. Follow with view_describe, then view_query.";
6
+ readonly description = "Discover the analytical views available for answering aggregate and analytical questions about your business \u2014 expenses, purchase orders, and related domains. Returns each view's name, title, what it answers, and its data grain. This is the reporting layer: prefer it over listing tools whenever the question involves totals, breakdowns, comparisons, or trends. Follow with view_describe, then view_query. Call again whenever a question doesn't match the views you already know \u2014 the catalog grows over time and new views need no reconnection.";
7
7
  readonly inputSchema: {};
8
8
  protected readonly readOnly = true;
9
9
  execute(): Promise<McpToolResultInterface>;
@@ -8,7 +8,7 @@ class ViewsListTool extends mcp_tool_1.McpTool {
8
8
  super(...arguments);
9
9
  this.name = 'views_list';
10
10
  this.title = 'List analytical views';
11
- this.description = "Discover the analytical views available for answering aggregate and analytical questions about your business — expenses, purchase orders, and related domains. Returns each view's name, title, what it answers, and its data grain. This is the reporting layer: prefer it over listing tools whenever the question involves totals, breakdowns, comparisons, or trends. Follow with view_describe, then view_query.";
11
+ this.description = "Discover the analytical views available for answering aggregate and analytical questions about your business — expenses, purchase orders, and related domains. Returns each view's name, title, what it answers, and its data grain. This is the reporting layer: prefer it over listing tools whenever the question involves totals, breakdowns, comparisons, or trends. Follow with view_describe, then view_query. Call again whenever a question doesn't match the views you already know — the catalog grows over time and new views need no reconnection.";
12
12
  this.inputSchema = inputSchema;
13
13
  this.readOnly = true;
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"views.list.tool.js","sourceRoot":"","sources":["../../../src/mcp/tools/views.list.tool.ts"],"names":[],"mappings":";;;AACA,yCAAqC;AAErC,MAAM,WAAW,GAAG,EAAE,CAAC;AAKvB,MAAa,aAAc,SAAQ,kBAA8B;IAAjE;;QACa,SAAI,GAAG,YAAY,CAAC;QACpB,UAAK,GAAG,uBAAuB,CAAC;QAChC,gBAAW,GAChB,uZAAuZ,CAAC;QACnZ,gBAAW,GAAG,WAAW,CAAC;QAChB,aAAQ,GAAG,IAAI,CAAC;IAKvC,CAAC;IAHG,OAAO;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;IAC7F,CAAC;CACJ;AAXD,sCAWC"}
1
+ {"version":3,"file":"views.list.tool.js","sourceRoot":"","sources":["../../../src/mcp/tools/views.list.tool.ts"],"names":[],"mappings":";;;AACA,yCAAqC;AAErC,MAAM,WAAW,GAAG,EAAE,CAAC;AAKvB,MAAa,aAAc,SAAQ,kBAA8B;IAAjE;;QACa,SAAI,GAAG,YAAY,CAAC;QACpB,UAAK,GAAG,uBAAuB,CAAC;QAChC,gBAAW,GAChB,iiBAAiiB,CAAC;QAC7hB,gBAAW,GAAG,WAAW,CAAC;QAChB,aAAQ,GAAG,IAAI,CAAC;IAKvC,CAAC;IAHG,OAAO;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;IAC7F,CAAC;CACJ;AAXD,sCAWC"}
@@ -0,0 +1,5 @@
1
+ import { MigrationUtility } from '@servicelabsco/nestjs-utility-services';
2
+ export declare class CreateBusinessMaterialViewTable1787174933444 extends MigrationUtility {
3
+ constructor();
4
+ process(): void;
5
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CreateBusinessMaterialViewTable1787174933444 = void 0;
4
+ const nestjs_utility_services_1 = require("@servicelabsco/nestjs-utility-services");
5
+ class CreateBusinessMaterialViewTable1787174933444 extends nestjs_utility_services_1.MigrationUtility {
6
+ constructor() {
7
+ super('bz_material_views');
8
+ this.process();
9
+ }
10
+ process() {
11
+ this.primary();
12
+ this.foreign({ name: 'business_id', foreignTable: 'bz_business_details' });
13
+ this.foreign({ name: 'view_id', foreignTable: 'sys_material_views' });
14
+ this.boolean('active', true);
15
+ this.json('attributes');
16
+ this.whoColumns();
17
+ this.uniqueIndex(['business_id', 'view_id'], 'bz_material_views_business_view_unique');
18
+ }
19
+ }
20
+ exports.CreateBusinessMaterialViewTable1787174933444 = CreateBusinessMaterialViewTable1787174933444;
21
+ //# sourceMappingURL=1787174933444-CreateBusinessMaterialViewTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1787174933444-CreateBusinessMaterialViewTable.js","sourceRoot":"","sources":["../../src/migrations/1787174933444-CreateBusinessMaterialViewTable.ts"],"names":[],"mappings":";;;AAAA,oFAA0E;AAE1E,MAAa,4CAA6C,SAAQ,0CAAgB;IAC9E;QACI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAED,OAAO;QACH,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,qBAAqB,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAC,CAAC;QAEtE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAE7B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxB,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,wCAAwC,CAAC,CAAC;IAC3F,CAAC;CACJ;AAnBD,oGAmBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicelabsco/slabs-access-manager",
3
- "version": "1.0.70",
3
+ "version": "1.0.73",
4
4
  "description": "Support for application level menus and dashboards",
5
5
  "author": "Hemant Kumar Sah <hemantanshu@gmail.com>",
6
6
  "license": "MIT",
@@ -15,6 +15,9 @@
15
15
  "access": "public",
16
16
  "registry": "https://registry.npmjs.org/"
17
17
  },
18
+ "engines": {
19
+ "node": ">=24.11.0"
20
+ },
18
21
  "types": "dist/index.d.ts",
19
22
  "scripts": {
20
23
  "build": "nest build",
@@ -1,14 +0,0 @@
1
- import { CommonService, PropertyService, RemoteRequestService } from '@servicelabsco/nestjs-utility-services';
2
- import { FileUploadService } from './file.upload.service';
3
- export declare class PdfService extends CommonService {
4
- protected readonly propertyService: PropertyService;
5
- protected readonly fileUploadService: FileUploadService;
6
- protected readonly remoteRequestService: RemoteRequestService;
7
- protected publicExposed: boolean;
8
- protected token: any;
9
- constructor(propertyService: PropertyService, fileUploadService: FileUploadService, remoteRequestService: RemoteRequestService);
10
- getUrl(template: string, data: any, path: string): Promise<string>;
11
- getHtmlUrl(template: string, data: any, path: string): Promise<string>;
12
- getPdfFromHtmlUrl(url: string): Promise<any>;
13
- private getToken;
14
- }
@@ -1,89 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.PdfService = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const nestjs_utility_services_1 = require("@servicelabsco/nestjs-utility-services");
15
- const pdf_templates_entity_1 = require("../entities/pdf.templates.entity");
16
- const file_upload_service_1 = require("./file.upload.service");
17
- let PdfService = class PdfService extends nestjs_utility_services_1.CommonService {
18
- constructor(propertyService, fileUploadService, remoteRequestService) {
19
- super();
20
- this.propertyService = propertyService;
21
- this.fileUploadService = fileUploadService;
22
- this.remoteRequestService = remoteRequestService;
23
- this.publicExposed = true;
24
- }
25
- async getUrl(template, data, path) {
26
- const htmlUrl = await this.getHtmlUrl(template, data, path);
27
- return this.getPdfFromHtmlUrl(htmlUrl);
28
- }
29
- async getHtmlUrl(template, data, path) {
30
- const { script } = await pdf_templates_entity_1.PdfTemplatesEntity.findOne({ where: { identifier: template }, relations: ['script'] });
31
- const compiledData = nestjs_utility_services_1.PlatformUtility.compileHandlebar(script.script, data);
32
- const uniqueString = nestjs_utility_services_1.PlatformUtility.getFileName(template);
33
- const filename = `${uniqueString}.html`;
34
- const urlKey = `${path}/${filename}`;
35
- const bucket = await this.propertyService.get('aws.config.bucket');
36
- const params = {
37
- Bucket: bucket,
38
- Key: urlKey,
39
- Body: compiledData,
40
- ContentType: 'text/html',
41
- ACL: 'public-read',
42
- };
43
- return this.fileUploadService.uploadToS3(params);
44
- }
45
- async getPdfFromHtmlUrl(url) {
46
- const token = await this.getToken();
47
- const options = {
48
- url: `https://ei5oni4xxk.execute-api.ap-south-1.amazonaws.com/prod/html-pdf`,
49
- method: 'POST',
50
- headers: {
51
- 'Content-Type': 'application/json',
52
- Authorization: `Bearer ${token}`,
53
- },
54
- data: {
55
- html_url: url,
56
- },
57
- timeout: 900000,
58
- };
59
- try {
60
- const response = await this.remoteRequestService.sendThroughAxios(options);
61
- if (!response?.data?.success) {
62
- throw new nestjs_utility_services_1.OperationException(response?.data?.error || response?.data?.message || 'Failed to convert HTML to PDF');
63
- }
64
- return response?.data?.pdf?.url;
65
- }
66
- catch (error) {
67
- if (error.response?.data) {
68
- throw new nestjs_utility_services_1.OperationException(error.response.data.error || error.response.data.message);
69
- }
70
- throw error;
71
- }
72
- }
73
- async getToken() {
74
- if (this.token)
75
- return this.token;
76
- this.token = await this.propertyService.get('html.to.pdf.token');
77
- if (!this.token)
78
- throw new nestjs_utility_services_1.OperationException('HTML-to-PDF token not found, set property html.to.pdf.token');
79
- return this.token;
80
- }
81
- };
82
- exports.PdfService = PdfService;
83
- exports.PdfService = PdfService = __decorate([
84
- (0, common_1.Injectable)(),
85
- __metadata("design:paramtypes", [nestjs_utility_services_1.PropertyService,
86
- file_upload_service_1.FileUploadService,
87
- nestjs_utility_services_1.RemoteRequestService])
88
- ], PdfService);
89
- //# sourceMappingURL=pdf.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pdf.service.js","sourceRoot":"","sources":["../../../src/accessUtility/services/pdf.service.ts"],"names":[],"mappings":"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"}