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