pepr 0.49.0 → 0.50.0-nightly.1

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 (76) hide show
  1. package/dist/cli/crd/create.d.ts.map +1 -1
  2. package/dist/cli/crd/generate.d.ts.map +1 -1
  3. package/dist/cli/crd/messages.d.ts +11 -0
  4. package/dist/cli/crd/messages.d.ts.map +1 -0
  5. package/dist/cli/deploy.d.ts.map +1 -1
  6. package/dist/cli/docs/cli.helper.d.ts +12 -0
  7. package/dist/cli/docs/cli.helper.d.ts.map +1 -0
  8. package/dist/cli/docs/markdown.helper.d.ts +8 -0
  9. package/dist/cli/docs/markdown.helper.d.ts.map +1 -0
  10. package/dist/cli/format/format.helpers.d.ts.map +1 -0
  11. package/dist/cli/{format.d.ts → format/index.d.ts} +2 -2
  12. package/dist/cli/format/index.d.ts.map +1 -0
  13. package/dist/cli/init/templates.d.ts +12 -18
  14. package/dist/cli/init/templates.d.ts.map +1 -1
  15. package/dist/cli/update/index.d.ts +3 -0
  16. package/dist/cli/update/index.d.ts.map +1 -0
  17. package/dist/cli.js +321 -231
  18. package/dist/controller.js +1 -1
  19. package/dist/lib/assets/assets.d.ts.map +1 -1
  20. package/dist/lib/assets/defaultTestObjects.d.ts.map +1 -1
  21. package/dist/lib/assets/helm.d.ts.map +1 -1
  22. package/dist/lib/assets/ignoredNamespaces.d.ts +2 -0
  23. package/dist/lib/assets/ignoredNamespaces.d.ts.map +1 -0
  24. package/dist/lib/assets/webhooks.d.ts +0 -1
  25. package/dist/lib/assets/webhooks.d.ts.map +1 -1
  26. package/dist/lib/assets/yaml/overridesFile.d.ts.map +1 -1
  27. package/dist/lib/controller/index.d.ts.map +1 -1
  28. package/dist/lib/controller/storeCache.d.ts.map +1 -1
  29. package/dist/lib/core/capability.d.ts.map +1 -1
  30. package/dist/lib/core/module.d.ts.map +1 -1
  31. package/dist/lib/core/storage.d.ts.map +1 -1
  32. package/dist/lib/filter/adjudicators/binding.d.ts.map +1 -1
  33. package/dist/lib/helpers.d.ts +1 -1
  34. package/dist/lib/helpers.d.ts.map +1 -1
  35. package/dist/lib/mutate-request.d.ts.map +1 -1
  36. package/dist/lib/processors/mutate-processor.d.ts.map +1 -1
  37. package/dist/lib/processors/validate-processor.d.ts.map +1 -1
  38. package/dist/lib/telemetry/metrics.d.ts.map +1 -1
  39. package/dist/lib/types.d.ts +8 -0
  40. package/dist/lib/types.d.ts.map +1 -1
  41. package/dist/lib/validate-request.d.ts.map +1 -1
  42. package/dist/lib.js +86 -83
  43. package/dist/lib.js.map +4 -4
  44. package/dist/sdk/sdk.d.ts +2 -0
  45. package/dist/sdk/sdk.d.ts.map +1 -1
  46. package/package.json +17 -15
  47. package/src/cli/build.ts +1 -1
  48. package/src/cli/crd/generate.ts +8 -7
  49. package/src/cli/crd/messages.ts +15 -0
  50. package/src/cli/deploy.ts +12 -2
  51. package/src/cli/{format.ts → format/index.ts} +2 -2
  52. package/src/cli/init/templates.ts +29 -3
  53. package/src/cli/{update.ts → update/index.ts} +30 -3
  54. package/src/lib/assets/assets.ts +7 -0
  55. package/src/lib/assets/helm.ts +28 -1
  56. package/src/lib/assets/ignoredNamespaces.ts +17 -0
  57. package/src/lib/assets/webhooks.ts +6 -17
  58. package/src/lib/assets/yaml/overridesFile.ts +7 -2
  59. package/src/lib/controller/createHooks.ts +1 -1
  60. package/src/lib/core/module.ts +3 -1
  61. package/src/lib/helpers.ts +16 -6
  62. package/src/lib/processors/mutate-processor.ts +6 -2
  63. package/src/lib/processors/validate-processor.ts +9 -3
  64. package/src/lib/types.ts +8 -0
  65. package/src/sdk/sdk.ts +10 -7
  66. package/src/templates/capabilities/hello-pepr.ts +1 -1
  67. package/src/templates/eslint.config.mjs +45 -0
  68. package/src/templates/package.json +10 -0
  69. package/dist/cli/format.d.ts.map +0 -1
  70. package/dist/cli/format.helpers.d.ts.map +0 -1
  71. package/dist/cli/update.d.ts +0 -3
  72. package/dist/cli/update.d.ts.map +0 -1
  73. package/src/templates/.eslintrc.json +0 -6
  74. package/src/templates/.eslintrc.template.json +0 -18
  75. /package/dist/cli/{format.helpers.d.ts → format/format.helpers.d.ts} +0 -0
  76. /package/src/cli/{format.helpers.ts → format/format.helpers.ts} +0 -0
package/dist/lib.js CHANGED
@@ -6,8 +6,8 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
8
  var __export = (target, all) => {
9
- for (var name2 in all)
10
- __defProp(target, name2, { get: all[name2], enumerable: true });
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
11
  };
12
12
  var __copyProps = (to, from, except, desc) => {
13
13
  if (from && typeof from === "object" || typeof from === "function") {
@@ -428,11 +428,11 @@ var Capability = class {
428
428
  * @returns
429
429
  */
430
430
  OnSchedule = (schedule) => {
431
- const { name: name2, every, unit, run, startTime, completions } = schedule;
431
+ const { name, every, unit, run, startTime, completions } = schedule;
432
432
  this.hasSchedule = true;
433
433
  if (process.env.PEPR_WATCH_MODE === "true" || process.env.PEPR_MODE === "dev") {
434
434
  const newSchedule = {
435
- name: name2,
435
+ name,
436
436
  every,
437
437
  unit,
438
438
  run,
@@ -693,9 +693,9 @@ var Capability = class {
693
693
  binding.filters.regexName = regexName.source;
694
694
  return commonChain;
695
695
  }
696
- function WithName(name2) {
697
- logger_default.debug(`Add name filter ${name2}`, prefix);
698
- binding.filters.name = name2;
696
+ function WithName(name) {
697
+ logger_default.debug(`Add name filter ${name}`, prefix);
698
+ binding.filters.name = name;
699
699
  return commonChain;
700
700
  }
701
701
  function WithLabel(key, value = "") {
@@ -735,7 +735,7 @@ var Capability = class {
735
735
  };
736
736
 
737
737
  // src/lib/core/module.ts
738
- var import_ramda14 = require("ramda");
738
+ var import_ramda13 = require("ramda");
739
739
 
740
740
  // src/lib/controller/index.ts
741
741
  var import_express = __toESM(require("express"));
@@ -777,34 +777,34 @@ var MetricsCollector = class {
777
777
  "count"
778
778
  ]);
779
779
  }
780
- #getMetricName = (name2) => `${this.#prefix}_${name2}`;
781
- #addMetric = (collection, MetricType, { name: name2, help, labelNames }) => {
782
- if (collection.has(this.#getMetricName(name2))) {
783
- logger_default.debug(`Metric for ${name2} already exists`, loggingPrefix);
780
+ #getMetricName = (name) => `${this.#prefix}_${name}`;
781
+ #addMetric = (collection, MetricType, { name, help, labelNames }) => {
782
+ if (collection.has(this.#getMetricName(name))) {
783
+ logger_default.debug(`Metric for ${name} already exists`, loggingPrefix);
784
784
  return;
785
785
  }
786
786
  const metric = new MetricType({
787
- name: this.#getMetricName(name2),
787
+ name: this.#getMetricName(name),
788
788
  help,
789
789
  registers: [this.#registry],
790
790
  labelNames
791
791
  });
792
- collection.set(this.#getMetricName(name2), metric);
792
+ collection.set(this.#getMetricName(name), metric);
793
793
  };
794
- addCounter = (name2, help) => {
795
- this.#addMetric(this.#counters, import_prom_client.default.Counter, { name: name2, help, labelNames: [] });
794
+ addCounter = (name, help) => {
795
+ this.#addMetric(this.#counters, import_prom_client.default.Counter, { name, help, labelNames: [] });
796
796
  };
797
- addSummary = (name2, help) => {
798
- this.#addMetric(this.#summaries, import_prom_client.default.Summary, { name: name2, help, labelNames: [] });
797
+ addSummary = (name, help) => {
798
+ this.#addMetric(this.#summaries, import_prom_client.default.Summary, { name, help, labelNames: [] });
799
799
  };
800
- addGauge = (name2, help, labelNames) => {
801
- this.#addMetric(this.#gauges, import_prom_client.default.Gauge, { name: name2, help, labelNames });
800
+ addGauge = (name, help, labelNames) => {
801
+ this.#addMetric(this.#gauges, import_prom_client.default.Gauge, { name, help, labelNames });
802
802
  };
803
- incCounter = (name2) => {
804
- this.#counters.get(this.#getMetricName(name2))?.inc();
803
+ incCounter = (name) => {
804
+ this.#counters.get(this.#getMetricName(name))?.inc();
805
805
  };
806
- incGauge = (name2, labels, value = 1) => {
807
- this.#gauges.get(this.#getMetricName(name2))?.inc(labels || {}, value);
806
+ incGauge = (name, labels, value = 1) => {
807
+ this.#gauges.get(this.#getMetricName(name))?.inc(labels || {}, value);
808
808
  };
809
809
  /**
810
810
  * Increments the error counter.
@@ -819,8 +819,8 @@ var MetricsCollector = class {
819
819
  * @param startTime - The start time.
820
820
  * @param name - The metrics summary to increment.
821
821
  */
822
- observeEnd = (startTime, name2 = this.#metricNames.mutate) => {
823
- this.#summaries.get(this.#getMetricName(name2))?.observe(import_perf_hooks.performance.now() - startTime);
822
+ observeEnd = (startTime, name = this.#metricNames.mutate) => {
823
+ this.#summaries.get(this.#getMetricName(name))?.observe(import_perf_hooks.performance.now() - startTime);
824
824
  };
825
825
  /**
826
826
  * Fetches the current metrics from the registry.
@@ -1416,8 +1416,7 @@ var OnError = /* @__PURE__ */ ((OnError2) => {
1416
1416
  return OnError2;
1417
1417
  })(OnError || {});
1418
1418
 
1419
- // src/lib/assets/webhooks.ts
1420
- var import_ramda9 = require("ramda");
1419
+ // src/lib/assets/ignoredNamespaces.ts
1421
1420
  function resolveIgnoreNamespaces(ignoredNSConfig = []) {
1422
1421
  const ignoredNSEnv = process.env.PEPR_ADDITIONAL_IGNORED_NAMESPACES;
1423
1422
  if (!ignoredNSEnv) {
@@ -1431,7 +1430,7 @@ function resolveIgnoreNamespaces(ignoredNSConfig = []) {
1431
1430
  }
1432
1431
 
1433
1432
  // src/lib/processors/decode-utils.ts
1434
- var import_ramda10 = require("ramda");
1433
+ var import_ramda9 = require("ramda");
1435
1434
  function decodeData(wrapped) {
1436
1435
  let skipped = [];
1437
1436
  const isSecret = wrapped.Request.kind.version === "v1" && wrapped.Request.kind.kind === "Secret";
@@ -1441,7 +1440,7 @@ function decodeData(wrapped) {
1441
1440
  return { skipped, wrapped };
1442
1441
  }
1443
1442
  function reencodeData(wrapped, skipped) {
1444
- const transformed = (0, import_ramda10.clone)(wrapped.Raw);
1443
+ const transformed = (0, import_ramda9.clone)(wrapped.Raw);
1445
1444
  const isSecret = wrapped.Request.kind.version === "v1" && wrapped.Request.kind.kind === "Secret";
1446
1445
  if (isSecret) {
1447
1446
  convertToBase64Map(transformed, skipped);
@@ -1450,11 +1449,11 @@ function reencodeData(wrapped, skipped) {
1450
1449
  }
1451
1450
 
1452
1451
  // src/lib/processors/mutate-processor.ts
1453
- function updateStatus(config, name2, wrapped, status) {
1452
+ function updateStatus(config, name, wrapped, status) {
1454
1453
  if (wrapped.Request.operation === "DELETE") {
1455
1454
  return wrapped;
1456
1455
  }
1457
- wrapped.SetAnnotation(`${config.uuid}.pepr.dev/${name2}`, status);
1456
+ wrapped.SetAnnotation(`${config.uuid}.pepr.dev/${name}`, status);
1458
1457
  return wrapped;
1459
1458
  }
1460
1459
  function logMutateErrorMessage(e) {
@@ -1469,16 +1468,16 @@ function logMutateErrorMessage(e) {
1469
1468
  }
1470
1469
  }
1471
1470
  async function processRequest(bindable, wrapped, response) {
1472
- const { binding, actMeta, name: name2, config } = bindable;
1471
+ const { binding, actMeta, name, config } = bindable;
1473
1472
  const label = binding.mutateCallback.name;
1474
1473
  logger_default.info(actMeta, `Processing mutation action (${label})`);
1475
- wrapped = updateStatus(config, name2, wrapped, "started");
1474
+ wrapped = updateStatus(config, name, wrapped, "started");
1476
1475
  try {
1477
1476
  await binding.mutateCallback(wrapped);
1478
1477
  logger_default.info(actMeta, `Mutation action succeeded (${label})`);
1479
- wrapped = updateStatus(config, name2, wrapped, "succeeded");
1478
+ wrapped = updateStatus(config, name, wrapped, "succeeded");
1480
1479
  } catch (e) {
1481
- wrapped = updateStatus(config, name2, wrapped, "warning");
1480
+ wrapped = updateStatus(config, name, wrapped, "warning");
1482
1481
  response.warnings = response.warnings || [];
1483
1482
  const errorMessage = logMutateErrorMessage(e);
1484
1483
  logger_default.error(actMeta, `Action failed: ${errorMessage}`);
@@ -1523,7 +1522,9 @@ async function mutateProcessor(config, capabilities, req, reqMetadata) {
1523
1522
  bind.binding,
1524
1523
  bind.req,
1525
1524
  bind.namespaces,
1526
- resolveIgnoreNamespaces(bind.config?.alwaysIgnore?.namespaces)
1525
+ resolveIgnoreNamespaces(
1526
+ bind?.config?.alwaysIgnore?.namespaces?.length ? bind.config?.alwaysIgnore?.namespaces : bind.config?.admission?.alwaysIgnore?.namespaces
1527
+ )
1527
1528
  );
1528
1529
  if (shouldSkip !== "") {
1529
1530
  logger_default.debug(shouldSkip);
@@ -1565,7 +1566,7 @@ function updateResponsePatchAndWarnings(patches, response) {
1565
1566
  }
1566
1567
 
1567
1568
  // src/lib/validate-request.ts
1568
- var import_ramda11 = require("ramda");
1569
+ var import_ramda10 = require("ramda");
1569
1570
  var PeprValidateRequest = class {
1570
1571
  Raw;
1571
1572
  #input;
@@ -1590,9 +1591,9 @@ var PeprValidateRequest = class {
1590
1591
  constructor(input) {
1591
1592
  this.#input = input;
1592
1593
  if (input.operation.toUpperCase() === "DELETE" /* DELETE */) {
1593
- this.Raw = (0, import_ramda11.clone)(input.oldObject);
1594
+ this.Raw = (0, import_ramda10.clone)(input.oldObject);
1594
1595
  } else {
1595
- this.Raw = (0, import_ramda11.clone)(input.object);
1596
+ this.Raw = (0, import_ramda10.clone)(input.object);
1596
1597
  }
1597
1598
  if (!this.Raw) {
1598
1599
  throw new Error("unable to load the request object into PeprRequest.Raw");
@@ -1659,7 +1660,7 @@ async function processRequest2(binding, actionMetadata, peprValidateRequest) {
1659
1660
  if (callbackResp.statusCode || callbackResp.statusMessage) {
1660
1661
  valResp.status = {
1661
1662
  code: callbackResp.statusCode || 400,
1662
- message: callbackResp.statusMessage || `Validation failed for ${name}`
1663
+ message: callbackResp.statusMessage || `Validation failed for ${peprValidateRequest.Request.kind.kind.toLowerCase()}/${peprValidateRequest.Request.name}${peprValidateRequest.Request.namespace ? ` in ${peprValidateRequest.Request.namespace} namespace.` : ""}`
1663
1664
  };
1664
1665
  }
1665
1666
  if (callbackResp.warnings && callbackResp.warnings.length > 0) {
@@ -1689,8 +1690,8 @@ async function validateProcessor(config, capabilities, req, reqMetadata) {
1689
1690
  convertFromBase64Map(wrapped.Raw);
1690
1691
  }
1691
1692
  logger_default.info(reqMetadata, `Processing validation request`);
1692
- for (const { name: name2, bindings, namespaces } of capabilities) {
1693
- const actionMetadata = { ...reqMetadata, name: name2 };
1693
+ for (const { name, bindings, namespaces } of capabilities) {
1694
+ const actionMetadata = { ...reqMetadata, name };
1694
1695
  for (const binding of bindings) {
1695
1696
  if (!binding.validateCallback) {
1696
1697
  continue;
@@ -1699,7 +1700,9 @@ async function validateProcessor(config, capabilities, req, reqMetadata) {
1699
1700
  binding,
1700
1701
  req,
1701
1702
  namespaces,
1702
- resolveIgnoreNamespaces(config?.alwaysIgnore?.namespaces)
1703
+ resolveIgnoreNamespaces(
1704
+ config?.alwaysIgnore?.namespaces?.length ? config?.alwaysIgnore?.namespaces : config?.admission?.alwaysIgnore?.namespaces
1705
+ )
1703
1706
  );
1704
1707
  if (shouldSkip !== "") {
1705
1708
  logger_default.debug(shouldSkip);
@@ -1715,7 +1718,7 @@ async function validateProcessor(config, capabilities, req, reqMetadata) {
1715
1718
 
1716
1719
  // src/lib/controller/store.ts
1717
1720
  var import_kubernetes_fluent_client6 = require("kubernetes-fluent-client");
1718
- var import_ramda13 = require("ramda");
1721
+ var import_ramda12 = require("ramda");
1719
1722
 
1720
1723
  // src/lib/k8s.ts
1721
1724
  var import_kubernetes_fluent_client3 = require("kubernetes-fluent-client");
@@ -1731,12 +1734,12 @@ var peprStoreGVK = {
1731
1734
  // src/lib/controller/storeCache.ts
1732
1735
  var import_kubernetes_fluent_client4 = require("kubernetes-fluent-client");
1733
1736
  var import_http_status_codes = require("http-status-codes");
1734
- var sendUpdatesAndFlushCache = async (cache, namespace2, name2) => {
1737
+ var sendUpdatesAndFlushCache = async (cache, namespace2, name) => {
1735
1738
  const indexes = Object.keys(cache);
1736
1739
  const payload = Object.values(cache);
1737
1740
  try {
1738
1741
  if (payload.length > 0) {
1739
- await (0, import_kubernetes_fluent_client4.K8s)(Store, { namespace: namespace2, name: name2 }).Patch(updateCacheID(payload));
1742
+ await (0, import_kubernetes_fluent_client4.K8s)(Store, { namespace: namespace2, name }).Patch(updateCacheID(payload));
1740
1743
  Object.keys(cache).forEach((key) => delete cache[key]);
1741
1744
  }
1742
1745
  } catch (err) {
@@ -1778,12 +1781,12 @@ function updateCacheID(payload) {
1778
1781
  }
1779
1782
 
1780
1783
  // src/lib/controller/migrateStore.ts
1781
- var import_ramda12 = require("ramda");
1784
+ var import_ramda11 = require("ramda");
1782
1785
  var import_kubernetes_fluent_client5 = require("kubernetes-fluent-client");
1783
1786
  async function migrateAndSetupWatch(storeData) {
1784
- const { store, namespace: namespace2, name: name2, stores, setupWatch: setupWatch2 } = storeData;
1787
+ const { store, namespace: namespace2, name, stores, setupWatch: setupWatch2 } = storeData;
1785
1788
  logger_default.debug(redactedStore(store), "Pepr Store migration");
1786
- await (0, import_kubernetes_fluent_client5.K8s)(Store, { namespace: namespace2, name: name2 }).Patch([
1789
+ await (0, import_kubernetes_fluent_client5.K8s)(Store, { namespace: namespace2, name }).Patch([
1787
1790
  {
1788
1791
  op: "add",
1789
1792
  path: "/metadata/labels/pepr.dev-cacheID",
@@ -1792,15 +1795,15 @@ async function migrateAndSetupWatch(storeData) {
1792
1795
  ]);
1793
1796
  const data = store.data;
1794
1797
  let storeCache = {};
1795
- for (const name3 of Object.keys(stores)) {
1796
- const offset = `${name3}-`.length;
1798
+ for (const name2 of Object.keys(stores)) {
1799
+ const offset = `${name2}-`.length;
1797
1800
  for (const key of Object.keys(data)) {
1798
- if ((0, import_ramda12.startsWith)(name3, key) && !(0, import_ramda12.startsWith)(`${name3}-v2`, key)) {
1799
- storeCache = fillStoreCache(storeCache, name3, "remove", {
1801
+ if ((0, import_ramda11.startsWith)(name2, key) && !(0, import_ramda11.startsWith)(`${name2}-v2`, key)) {
1802
+ storeCache = fillStoreCache(storeCache, name2, "remove", {
1800
1803
  key: [key.slice(offset)],
1801
1804
  value: data[key]
1802
1805
  });
1803
- storeCache = fillStoreCache(storeCache, name3, "add", {
1806
+ storeCache = fillStoreCache(storeCache, name2, "add", {
1804
1807
  key: [key.slice(offset)],
1805
1808
  value: data[key],
1806
1809
  version: "v2"
@@ -1808,7 +1811,7 @@ async function migrateAndSetupWatch(storeData) {
1808
1811
  }
1809
1812
  }
1810
1813
  }
1811
- storeCache = await sendUpdatesAndFlushCache(storeCache, namespace2, name2);
1814
+ storeCache = await sendUpdatesAndFlushCache(storeCache, namespace2, name);
1812
1815
  setupWatch2();
1813
1816
  }
1814
1817
 
@@ -1821,29 +1824,29 @@ var StoreController = class {
1821
1824
  #stores = {};
1822
1825
  #sendDebounce;
1823
1826
  #onReady;
1824
- constructor(capabilities, name2, onReady) {
1827
+ constructor(capabilities, name, onReady) {
1825
1828
  this.#onReady = onReady;
1826
- this.#name = name2;
1827
- const setStorageInstance = (registrationFunction, name3) => {
1829
+ this.#name = name;
1830
+ const setStorageInstance = (registrationFunction, name2) => {
1828
1831
  const scheduleStore = registrationFunction();
1829
- scheduleStore.registerSender(this.#send(name3));
1830
- this.#stores[name3] = scheduleStore;
1832
+ scheduleStore.registerSender(this.#send(name2));
1833
+ this.#stores[name2] = scheduleStore;
1831
1834
  };
1832
- if (name2.includes("schedule")) {
1833
- for (const { name: name3, registerScheduleStore, hasSchedule } of capabilities) {
1835
+ if (name.includes("schedule")) {
1836
+ for (const { name: name2, registerScheduleStore, hasSchedule } of capabilities) {
1834
1837
  if (hasSchedule === true) {
1835
- setStorageInstance(registerScheduleStore, name3);
1838
+ setStorageInstance(registerScheduleStore, name2);
1836
1839
  }
1837
1840
  }
1838
1841
  } else {
1839
- for (const { name: name3, registerStore } of capabilities) {
1840
- setStorageInstance(registerStore, name3);
1842
+ for (const { name: name2, registerStore } of capabilities) {
1843
+ setStorageInstance(registerStore, name2);
1841
1844
  }
1842
1845
  }
1843
1846
  setTimeout(
1844
1847
  () => (0, import_kubernetes_fluent_client6.K8s)(Store).InNamespace(namespace).Get(this.#name).then(
1845
1848
  async (store) => await migrateAndSetupWatch({
1846
- name: name2,
1849
+ name,
1847
1850
  namespace,
1848
1851
  store,
1849
1852
  stores: this.#stores,
@@ -1862,15 +1865,15 @@ var StoreController = class {
1862
1865
  logger_default.debug(redactedStore(store), "Pepr Store update");
1863
1866
  const debounced = () => {
1864
1867
  const data = store.data || {};
1865
- for (const name2 of Object.keys(this.#stores)) {
1866
- const offset = `${name2}-`.length;
1868
+ for (const name of Object.keys(this.#stores)) {
1869
+ const offset = `${name}-`.length;
1867
1870
  const filtered = {};
1868
1871
  for (const key of Object.keys(data)) {
1869
- if ((0, import_ramda13.startsWith)(name2, key)) {
1872
+ if ((0, import_ramda12.startsWith)(name, key)) {
1870
1873
  filtered[key.slice(offset)] = data[key];
1871
1874
  }
1872
1875
  }
1873
- this.#stores[name2].receive(filtered);
1876
+ this.#stores[name].receive(filtered);
1874
1877
  }
1875
1878
  if (this.#onReady) {
1876
1879
  this.#onReady();
@@ -2094,12 +2097,12 @@ var Controller = class _Controller {
2094
2097
  const startTime = MetricsCollector.observeStart();
2095
2098
  try {
2096
2099
  const request = req.body?.request || {};
2097
- const { name: name2, namespace: namespace2, gvk } = {
2100
+ const { name, namespace: namespace2, gvk } = {
2098
2101
  name: request?.name ? `/${request.name}` : "",
2099
2102
  namespace: request?.namespace || "",
2100
2103
  gvk: request?.kind || { group: "", version: "", kind: "" }
2101
2104
  };
2102
- const reqMetadata = { uid: request.uid, namespace: namespace2, name: name2 };
2105
+ const reqMetadata = { uid: request.uid, namespace: namespace2, name };
2103
2106
  logger_default.info(
2104
2107
  { ...reqMetadata, gvk, operation: request.operation, admissionKind },
2105
2108
  "Incoming request"
@@ -2186,8 +2189,8 @@ var Queue = class {
2186
2189
  #uid;
2187
2190
  #queue = [];
2188
2191
  #pendingPromise = false;
2189
- constructor(name2) {
2190
- this.#name = name2;
2192
+ constructor(name) {
2193
+ this.#name = name;
2191
2194
  this.#uid = `${Date.now()}-${(0, import_node_crypto.randomBytes)(2).toString("hex")}`;
2192
2195
  }
2193
2196
  label() {
@@ -2277,11 +2280,11 @@ function queueKey(obj) {
2277
2280
  strat = options.includes(strat) ? strat : d3fault;
2278
2281
  const ns = obj.metadata?.namespace ?? "cluster-scoped";
2279
2282
  const kind3 = obj.kind ?? "UnknownKind";
2280
- const name2 = obj.metadata?.name ?? "Unnamed";
2283
+ const name = obj.metadata?.name ?? "Unnamed";
2281
2284
  const lookup = {
2282
2285
  kind: `${kind3}`,
2283
2286
  kindNs: `${kind3}/${ns}`,
2284
- kindNsName: `${kind3}/${ns}/${name2}`,
2287
+ kindNsName: `${kind3}/${ns}/${name}`,
2285
2288
  global: "global"
2286
2289
  };
2287
2290
  return lookup[strat];
@@ -2453,7 +2456,7 @@ var PeprModule = class {
2453
2456
  * @param opts Options for the Pepr runtime
2454
2457
  */
2455
2458
  constructor({ description, pepr }, capabilities = [], opts = {}) {
2456
- const config = (0, import_ramda14.clone)(pepr);
2459
+ const config = (0, import_ramda13.clone)(pepr);
2457
2460
  config.description = description;
2458
2461
  ValidateError(config.onError);
2459
2462
  if (isBuildMode()) {
@@ -2476,7 +2479,7 @@ var PeprModule = class {
2476
2479
  const controllerHooks = createControllerHooks(
2477
2480
  opts,
2478
2481
  capabilities,
2479
- pepr?.alwaysIgnore?.namespaces
2482
+ pepr?.alwaysIgnore?.namespaces?.length ? pepr.alwaysIgnore.namespaces : config?.watch?.alwaysIgnore?.namespaces
2480
2483
  );
2481
2484
  this.#controller = new Controller(config, capabilities, controllerHooks);
2482
2485
  if (opts.deferStart) {
@@ -2544,20 +2547,20 @@ async function writeEvent(cr, event, options) {
2544
2547
  }
2545
2548
  function getOwnerRefFrom(customResource, blockOwnerDeletion, controller) {
2546
2549
  const { apiVersion, kind: kind3, metadata } = customResource;
2547
- const { name: name2, uid } = metadata;
2550
+ const { name, uid } = metadata;
2548
2551
  return [
2549
2552
  {
2550
2553
  apiVersion,
2551
2554
  kind: kind3,
2552
2555
  uid,
2553
- name: name2,
2556
+ name,
2554
2557
  ...blockOwnerDeletion !== void 0 && { blockOwnerDeletion },
2555
2558
  ...controller !== void 0 && { controller }
2556
2559
  }
2557
2560
  ];
2558
2561
  }
2559
- function sanitizeResourceName(name2) {
2560
- return name2.toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 250).replace(/^[^a-z]+|[^a-z]+$/g, "");
2562
+ function sanitizeResourceName(name) {
2563
+ return name.toLowerCase().replace(/[^a-z0-9-]+/g, "-").slice(0, 63).replace(/^[^a-z0-9]+/, "").replace(/[^a-z0-9]+$/, "");
2561
2564
  }
2562
2565
  // Annotate the CommonJS export names for ESM import in node:
2563
2566
  0 && (module.exports = {