@objectstack/metadata 7.0.0 → 7.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/node.cjs CHANGED
@@ -203,8 +203,7 @@ __export(node_exports, {
203
203
  YAMLSerializer: () => YAMLSerializer,
204
204
  calculateChecksum: () => calculateChecksum,
205
205
  generateDiffSummary: () => generateDiffSummary,
206
- generateSimpleDiff: () => generateSimpleDiff,
207
- registerMetadataHistoryRoutes: () => registerMetadataHistoryRoutes
206
+ generateSimpleDiff: () => generateSimpleDiff
208
207
  });
209
208
  module.exports = __toCommonJS(node_exports);
210
209
 
@@ -2132,7 +2131,18 @@ var _MetadataManager = class _MetadataManager {
2132
2131
  // ==========================================
2133
2132
  /**
2134
2133
  * Validate a metadata item against its type schema.
2135
- * Returns validation result with errors and warnings.
2134
+ *
2135
+ * NOTE: This is a lightweight structural check (presence of `name`,
2136
+ * basic shape). The authoritative spec validation lives in
2137
+ * `protocol.saveMetaItem` (write path) and is surfaced on read
2138
+ * paths via the `_diagnostics` envelope attached by
2139
+ * `protocol.getMetaItems` / `getMetaItem`. Both delegate to
2140
+ * `getMetadataTypeSchema()` — the single source of truth. We
2141
+ * deliberately do NOT run the full Zod schema here because
2142
+ * `MetadataManager`'s registry stores *publish envelopes*
2143
+ * (`{name, packageId, state, metadata: {...spec}}`), not raw spec
2144
+ * documents — running spec validation against the envelope would
2145
+ * yield false negatives.
2136
2146
  */
2137
2147
  async validate(_type, data) {
2138
2148
  if (data === null || data === void 0) {
@@ -3140,7 +3150,8 @@ var import_kernel = require("@objectstack/spec/kernel");
3140
3150
  var import_metadata2 = require("@objectstack/platform-objects/metadata");
3141
3151
  var queryableMetadataObjects = [
3142
3152
  import_metadata2.SysMetadataObject,
3143
- import_metadata2.SysMetadataHistoryObject
3153
+ import_metadata2.SysMetadataHistoryObject,
3154
+ import_metadata2.SysMetadataAuditObject
3144
3155
  ];
3145
3156
  var REPO_SUBDIR = ".objectstack/metadata";
3146
3157
  var ARTIFACT_FIELD_TO_TYPE = {
@@ -3169,6 +3180,7 @@ var ARTIFACT_FIELD_TO_TYPE = {
3169
3180
  mappings: "mapping",
3170
3181
  analyticsCubes: "analytics_cube",
3171
3182
  connectors: "connector",
3183
+ emailTemplates: "email_template",
3172
3184
  data: "dataset"
3173
3185
  };
3174
3186
  var MetadataPlugin = class {
@@ -3642,126 +3654,6 @@ var RemoteLoader = class {
3642
3654
  // src/index.ts
3643
3655
  var import_metadata3 = require("@objectstack/platform-objects/metadata");
3644
3656
 
3645
- // src/routes/history-routes.ts
3646
- function registerMetadataHistoryRoutes(app, metadataService) {
3647
- app.get("/api/v1/metadata/:type/:name/history", async (c) => {
3648
- if (!metadataService.getHistory) {
3649
- return c.json({ error: "History tracking not enabled" }, 501);
3650
- }
3651
- const { type, name } = c.req.param();
3652
- const query = c.req.query();
3653
- try {
3654
- const options = {};
3655
- if (query.limit !== void 0) {
3656
- const limit = parseInt(query.limit, 10);
3657
- if (!Number.isFinite(limit) || limit < 1) {
3658
- return c.json({ success: false, error: "limit must be a positive integer" }, 400);
3659
- }
3660
- options.limit = limit;
3661
- }
3662
- if (query.offset !== void 0) {
3663
- const offset = parseInt(query.offset, 10);
3664
- if (!Number.isFinite(offset) || offset < 0) {
3665
- return c.json({ success: false, error: "offset must be a non-negative integer" }, 400);
3666
- }
3667
- options.offset = offset;
3668
- }
3669
- if (query.since) options.since = query.since;
3670
- if (query.until) options.until = query.until;
3671
- if (query.operationType) options.operationType = query.operationType;
3672
- if (query.includeMetadata !== void 0) {
3673
- options.includeMetadata = query.includeMetadata === "true";
3674
- }
3675
- const result = await metadataService.getHistory(type, name, options);
3676
- return c.json({
3677
- success: true,
3678
- data: result
3679
- });
3680
- } catch (error) {
3681
- return c.json(
3682
- {
3683
- success: false,
3684
- error: error instanceof Error ? error.message : "Failed to retrieve history"
3685
- },
3686
- 500
3687
- );
3688
- }
3689
- });
3690
- app.post("/api/v1/metadata/:type/:name/rollback", async (c) => {
3691
- if (!metadataService.rollback) {
3692
- return c.json({ error: "Rollback not supported" }, 501);
3693
- }
3694
- const { type, name } = c.req.param();
3695
- try {
3696
- const body = await c.req.json();
3697
- const { version, changeNote, recordedBy } = body;
3698
- if (typeof version !== "number") {
3699
- return c.json(
3700
- {
3701
- success: false,
3702
- error: "Version number is required"
3703
- },
3704
- 400
3705
- );
3706
- }
3707
- const restoredMetadata = await metadataService.rollback(type, name, version, {
3708
- changeNote,
3709
- recordedBy
3710
- });
3711
- return c.json({
3712
- success: true,
3713
- data: {
3714
- type,
3715
- name,
3716
- version,
3717
- metadata: restoredMetadata
3718
- }
3719
- });
3720
- } catch (error) {
3721
- return c.json(
3722
- {
3723
- success: false,
3724
- error: error instanceof Error ? error.message : "Rollback failed"
3725
- },
3726
- 500
3727
- );
3728
- }
3729
- });
3730
- app.get("/api/v1/metadata/:type/:name/diff", async (c) => {
3731
- if (!metadataService.diff) {
3732
- return c.json({ error: "Diff not supported" }, 501);
3733
- }
3734
- const { type, name } = c.req.param();
3735
- const query = c.req.query();
3736
- try {
3737
- const version1 = parseInt(query.version1, 10);
3738
- const version2 = parseInt(query.version2, 10);
3739
- if (isNaN(version1) || isNaN(version2)) {
3740
- return c.json(
3741
- {
3742
- success: false,
3743
- error: "Both version1 and version2 query parameters are required"
3744
- },
3745
- 400
3746
- );
3747
- }
3748
- const diffResult = await metadataService.diff(type, name, version1, version2);
3749
- return c.json({
3750
- success: true,
3751
- data: diffResult
3752
- });
3753
- } catch (error) {
3754
- return c.json(
3755
- {
3756
- success: false,
3757
- error: error instanceof Error ? error.message : "Diff failed"
3758
- },
3759
- 500
3760
- );
3761
- }
3762
- });
3763
- }
3764
-
3765
3657
  // src/utils/history-cleanup.ts
3766
3658
  var import_kernel2 = require("@objectstack/spec/kernel");
3767
3659
  function executionPinnedTypes() {
@@ -4055,7 +3947,6 @@ var MigrationExecutor = class {
4055
3947
  YAMLSerializer,
4056
3948
  calculateChecksum,
4057
3949
  generateDiffSummary,
4058
- generateSimpleDiff,
4059
- registerMetadataHistoryRoutes
3950
+ generateSimpleDiff
4060
3951
  });
4061
3952
  //# sourceMappingURL=node.cjs.map