@rippling/rippling-sdk 0.2.0-alpha.38 → 0.2.0-alpha.39

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 (132) hide show
  1. package/lib/manifest/app.d.mts +11 -1
  2. package/lib/manifest/app.d.mts.map +1 -1
  3. package/lib/manifest/app.d.ts +11 -1
  4. package/lib/manifest/app.d.ts.map +1 -1
  5. package/lib/manifest/app.js +42 -1
  6. package/lib/manifest/app.js.map +1 -1
  7. package/lib/manifest/app.mjs +42 -1
  8. package/lib/manifest/app.mjs.map +1 -1
  9. package/lib/manifest/category.d.mts +10 -1
  10. package/lib/manifest/category.d.mts.map +1 -1
  11. package/lib/manifest/category.d.ts +10 -1
  12. package/lib/manifest/category.d.ts.map +1 -1
  13. package/lib/manifest/category.js +23 -1
  14. package/lib/manifest/category.js.map +1 -1
  15. package/lib/manifest/category.mjs +23 -1
  16. package/lib/manifest/category.mjs.map +1 -1
  17. package/lib/manifest/custom-object-field-section.d.mts +13 -0
  18. package/lib/manifest/custom-object-field-section.d.mts.map +1 -1
  19. package/lib/manifest/custom-object-field-section.d.ts +13 -0
  20. package/lib/manifest/custom-object-field-section.d.ts.map +1 -1
  21. package/lib/manifest/custom-object-field-section.js +22 -1
  22. package/lib/manifest/custom-object-field-section.js.map +1 -1
  23. package/lib/manifest/custom-object-field-section.mjs +22 -1
  24. package/lib/manifest/custom-object-field-section.mjs.map +1 -1
  25. package/lib/manifest/custom-object-page-layout.d.mts +21 -0
  26. package/lib/manifest/custom-object-page-layout.d.mts.map +1 -1
  27. package/lib/manifest/custom-object-page-layout.d.ts +21 -0
  28. package/lib/manifest/custom-object-page-layout.d.ts.map +1 -1
  29. package/lib/manifest/custom-object-page-layout.js +41 -1
  30. package/lib/manifest/custom-object-page-layout.js.map +1 -1
  31. package/lib/manifest/custom-object-page-layout.mjs +41 -1
  32. package/lib/manifest/custom-object-page-layout.mjs.map +1 -1
  33. package/lib/manifest/custom-object.d.mts +11 -1
  34. package/lib/manifest/custom-object.d.mts.map +1 -1
  35. package/lib/manifest/custom-object.d.ts +11 -1
  36. package/lib/manifest/custom-object.d.ts.map +1 -1
  37. package/lib/manifest/custom-object.js +55 -2
  38. package/lib/manifest/custom-object.js.map +1 -1
  39. package/lib/manifest/custom-object.mjs +55 -2
  40. package/lib/manifest/custom-object.mjs.map +1 -1
  41. package/lib/manifest/existing-manifest-context.d.mts +87 -0
  42. package/lib/manifest/existing-manifest-context.d.mts.map +1 -0
  43. package/lib/manifest/existing-manifest-context.d.ts +87 -0
  44. package/lib/manifest/existing-manifest-context.d.ts.map +1 -0
  45. package/lib/manifest/existing-manifest-context.js +511 -0
  46. package/lib/manifest/existing-manifest-context.js.map +1 -0
  47. package/lib/manifest/existing-manifest-context.mjs +506 -0
  48. package/lib/manifest/existing-manifest-context.mjs.map +1 -0
  49. package/lib/manifest/field.d.mts +24 -0
  50. package/lib/manifest/field.d.mts.map +1 -1
  51. package/lib/manifest/field.d.ts +24 -0
  52. package/lib/manifest/field.d.ts.map +1 -1
  53. package/lib/manifest/field.js +114 -1
  54. package/lib/manifest/field.js.map +1 -1
  55. package/lib/manifest/field.mjs +114 -1
  56. package/lib/manifest/field.mjs.map +1 -1
  57. package/lib/manifest/index.d.mts +8 -7
  58. package/lib/manifest/index.d.mts.map +1 -1
  59. package/lib/manifest/index.d.ts +8 -7
  60. package/lib/manifest/index.d.ts.map +1 -1
  61. package/lib/manifest/index.js +3 -1
  62. package/lib/manifest/index.js.map +1 -1
  63. package/lib/manifest/index.mjs +5 -4
  64. package/lib/manifest/index.mjs.map +1 -1
  65. package/lib/manifest/list-view.d.mts +17 -0
  66. package/lib/manifest/list-view.d.mts.map +1 -1
  67. package/lib/manifest/list-view.d.ts +17 -0
  68. package/lib/manifest/list-view.d.ts.map +1 -1
  69. package/lib/manifest/list-view.js +38 -1
  70. package/lib/manifest/list-view.js.map +1 -1
  71. package/lib/manifest/list-view.mjs +38 -1
  72. package/lib/manifest/list-view.mjs.map +1 -1
  73. package/lib/manifest/manifest-builder.d.mts +59 -6
  74. package/lib/manifest/manifest-builder.d.mts.map +1 -1
  75. package/lib/manifest/manifest-builder.d.ts +59 -6
  76. package/lib/manifest/manifest-builder.d.ts.map +1 -1
  77. package/lib/manifest/manifest-builder.js +61 -3
  78. package/lib/manifest/manifest-builder.js.map +1 -1
  79. package/lib/manifest/manifest-builder.mjs +61 -3
  80. package/lib/manifest/manifest-builder.mjs.map +1 -1
  81. package/lib/manifest/manifest-function.d.mts +10 -1
  82. package/lib/manifest/manifest-function.d.mts.map +1 -1
  83. package/lib/manifest/manifest-function.d.ts +10 -1
  84. package/lib/manifest/manifest-function.d.ts.map +1 -1
  85. package/lib/manifest/manifest-function.js +36 -1
  86. package/lib/manifest/manifest-function.js.map +1 -1
  87. package/lib/manifest/manifest-function.mjs +36 -1
  88. package/lib/manifest/manifest-function.mjs.map +1 -1
  89. package/lib/manifest/rule.d.mts +17 -0
  90. package/lib/manifest/rule.d.mts.map +1 -1
  91. package/lib/manifest/rule.d.ts +17 -0
  92. package/lib/manifest/rule.d.ts.map +1 -1
  93. package/lib/manifest/rule.js +45 -1
  94. package/lib/manifest/rule.js.map +1 -1
  95. package/lib/manifest/rule.mjs +45 -1
  96. package/lib/manifest/rule.mjs.map +1 -1
  97. package/lib/manifest/sdui-page.d.mts +10 -1
  98. package/lib/manifest/sdui-page.d.mts.map +1 -1
  99. package/lib/manifest/sdui-page.d.ts +10 -1
  100. package/lib/manifest/sdui-page.d.ts.map +1 -1
  101. package/lib/manifest/sdui-page.js +28 -1
  102. package/lib/manifest/sdui-page.js.map +1 -1
  103. package/lib/manifest/sdui-page.mjs +28 -1
  104. package/lib/manifest/sdui-page.mjs.map +1 -1
  105. package/lib/manifest/validation.d.mts +17 -0
  106. package/lib/manifest/validation.d.mts.map +1 -1
  107. package/lib/manifest/validation.d.ts +17 -0
  108. package/lib/manifest/validation.d.ts.map +1 -1
  109. package/lib/manifest/validation.js +31 -1
  110. package/lib/manifest/validation.js.map +1 -1
  111. package/lib/manifest/validation.mjs +31 -1
  112. package/lib/manifest/validation.mjs.map +1 -1
  113. package/package.json +1 -1
  114. package/src/lib/manifest/app.ts +46 -2
  115. package/src/lib/manifest/category.ts +28 -2
  116. package/src/lib/manifest/custom-object-field-section.ts +37 -1
  117. package/src/lib/manifest/custom-object-page-layout.ts +61 -1
  118. package/src/lib/manifest/custom-object.ts +58 -3
  119. package/src/lib/manifest/existing-manifest-context.ts +673 -0
  120. package/src/lib/manifest/field.ts +140 -1
  121. package/src/lib/manifest/index.ts +39 -4
  122. package/src/lib/manifest/list-view.ts +50 -1
  123. package/src/lib/manifest/manifest-builder.ts +114 -4
  124. package/src/lib/manifest/manifest-function.ts +36 -2
  125. package/src/lib/manifest/rule.ts +60 -1
  126. package/src/lib/manifest/sdui-page.ts +37 -2
  127. package/src/lib/manifest/validation.ts +48 -1
  128. package/src/version.ts +1 -1
  129. package/version.d.mts +1 -1
  130. package/version.d.ts +1 -1
  131. package/version.js +1 -1
  132. package/version.mjs +1 -1
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ManifestBuilder = void 0;
4
+ const existing_manifest_context_1 = require("./existing-manifest-context.js");
4
5
  /**
5
6
  * Root container for a manifest — collects all components and serializes them to JSON.
6
7
  *
@@ -34,6 +35,7 @@ class ManifestBuilder {
34
35
  */
35
36
  constructor(props) {
36
37
  this._components = [];
38
+ this._componentsToDelete = [];
37
39
  if (!props.key) {
38
40
  throw new Error('key is required');
39
41
  }
@@ -41,6 +43,22 @@ class ManifestBuilder {
41
43
  this.name = props.name || props.key;
42
44
  this.description = props.description ?? '';
43
45
  }
46
+ /**
47
+ * Parses an existing manifest JSON blob, installs it as the active load context,
48
+ * hydrates every known component, and returns a normal `ManifestBuilder`.
49
+ */
50
+ static loadFromExistingJson(source) {
51
+ return existing_manifest_context_1.ExistingManifestContext.fromJson(source).loadManifestBuilder();
52
+ }
53
+ /**
54
+ * Parses an existing manifest JSON blob and installs it as the active lazy-load context.
55
+ *
56
+ * After calling this, individual components can be loaded with
57
+ * `CustomObjectPageLayout.loadFromExisting(...)`, `Field.loadFromExisting(...)`, etc.
58
+ */
59
+ static useExistingJson(source) {
60
+ return existing_manifest_context_1.ExistingManifestContext.fromJson(source);
61
+ }
44
62
  /**
45
63
  * @internal Scope hook invoked by child constructors. Components enter the
46
64
  * manifest here — there is no other path.
@@ -52,9 +70,37 @@ class ManifestBuilder {
52
70
  this._components.push(component);
53
71
  }
54
72
  /**
55
- * Returns the manifest as a plain object with `metadata` and a flat `components` array.
73
+ * Marks a component to be deleted when this manifest is installed.
56
74
  *
57
- * @returns `{ metadata: { key, name, description? }, components: Record<string, any>[] }`
75
+ * @param componentClass - Component class, e.g. `CustomObject`.
76
+ * @param identifier - Component identifier/key, such as an api_name or the component's identifier object.
77
+ * @returns This builder for chaining.
78
+ */
79
+ markComponentForDeletion(componentClass, identifier) {
80
+ if (identifier == null || identifier === '') {
81
+ throw new Error('identifier is required');
82
+ }
83
+ if (!componentClass.componentType) {
84
+ throw new Error('type is required');
85
+ }
86
+ if (typeof componentClass.toDeletionIdentifier !== 'function') {
87
+ throw new TypeError('Component class must have a toDeletionIdentifier() method');
88
+ }
89
+ const deletion = componentClass.toDeletionIdentifier(identifier);
90
+ if (!deletion.type) {
91
+ throw new Error('type is required');
92
+ }
93
+ if (Object.keys(deletion).length <= 1) {
94
+ throw new Error('identifier is required');
95
+ }
96
+ this._componentsToDelete.push({ ...deletion });
97
+ return this;
98
+ }
99
+ /**
100
+ * Returns the manifest as a plain object with `metadata`, a flat `components` array,
101
+ * and a `components_to_delete` array when deletions are registered.
102
+ *
103
+ * @returns `{ metadata: { key, name, description? }, components, components_to_delete? }`
58
104
  */
59
105
  buildManifest() {
60
106
  const metadata = {
@@ -65,7 +111,11 @@ class ManifestBuilder {
65
111
  metadata['description'] = this.description;
66
112
  }
67
113
  const components = this._components.map((c) => c.toDict());
68
- return { metadata, components };
114
+ const manifest = { metadata, components };
115
+ if (this._componentsToDelete.length > 0) {
116
+ manifest.components_to_delete = this.componentsToDeleteList();
117
+ }
118
+ return manifest;
69
119
  }
70
120
  /**
71
121
  * Returns the flat list of all registered component dicts.
@@ -75,6 +125,14 @@ class ManifestBuilder {
75
125
  componentsList() {
76
126
  return this._components.map((c) => c.toDict());
77
127
  }
128
+ /**
129
+ * Returns the flat list of component deletion references.
130
+ *
131
+ * @returns An array of component identifier objects, in registration order.
132
+ */
133
+ componentsToDeleteList() {
134
+ return this._componentsToDelete.map((component) => ({ ...component }));
135
+ }
78
136
  /**
79
137
  * Returns the full manifest as a pretty-printed JSON string.
80
138
  *
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-builder.js","sourceRoot":"","sources":["../../src/lib/manifest/manifest-builder.ts"],"names":[],"mappings":";;;AA8CA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAa,eAAe;IAM1B;;;OAGG;IACH,YAAY,KAA2B;QANtB,gBAAW,GAAwB,EAAE,CAAC;QAOrD,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,SAA4B;QACpC,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC3C,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,aAAa;QACX,MAAM,QAAQ,GAAwB;YACpC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;QACF,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QAC7C,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;OAOG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;CACF;AAnED,0CAmEC"}
1
+ {"version":3,"file":"manifest-builder.js","sourceRoot":"","sources":["../../src/lib/manifest/manifest-builder.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { ExistingManifestContext } from "./existing-manifest-context.mjs";
1
2
  /**
2
3
  * Root container for a manifest — collects all components and serializes them to JSON.
3
4
  *
@@ -31,6 +32,7 @@ export class ManifestBuilder {
31
32
  */
32
33
  constructor(props) {
33
34
  this._components = [];
35
+ this._componentsToDelete = [];
34
36
  if (!props.key) {
35
37
  throw new Error('key is required');
36
38
  }
@@ -38,6 +40,22 @@ export class ManifestBuilder {
38
40
  this.name = props.name || props.key;
39
41
  this.description = props.description ?? '';
40
42
  }
43
+ /**
44
+ * Parses an existing manifest JSON blob, installs it as the active load context,
45
+ * hydrates every known component, and returns a normal `ManifestBuilder`.
46
+ */
47
+ static loadFromExistingJson(source) {
48
+ return ExistingManifestContext.fromJson(source).loadManifestBuilder();
49
+ }
50
+ /**
51
+ * Parses an existing manifest JSON blob and installs it as the active lazy-load context.
52
+ *
53
+ * After calling this, individual components can be loaded with
54
+ * `CustomObjectPageLayout.loadFromExisting(...)`, `Field.loadFromExisting(...)`, etc.
55
+ */
56
+ static useExistingJson(source) {
57
+ return ExistingManifestContext.fromJson(source);
58
+ }
41
59
  /**
42
60
  * @internal Scope hook invoked by child constructors. Components enter the
43
61
  * manifest here — there is no other path.
@@ -49,9 +67,37 @@ export class ManifestBuilder {
49
67
  this._components.push(component);
50
68
  }
51
69
  /**
52
- * Returns the manifest as a plain object with `metadata` and a flat `components` array.
70
+ * Marks a component to be deleted when this manifest is installed.
53
71
  *
54
- * @returns `{ metadata: { key, name, description? }, components: Record<string, any>[] }`
72
+ * @param componentClass - Component class, e.g. `CustomObject`.
73
+ * @param identifier - Component identifier/key, such as an api_name or the component's identifier object.
74
+ * @returns This builder for chaining.
75
+ */
76
+ markComponentForDeletion(componentClass, identifier) {
77
+ if (identifier == null || identifier === '') {
78
+ throw new Error('identifier is required');
79
+ }
80
+ if (!componentClass.componentType) {
81
+ throw new Error('type is required');
82
+ }
83
+ if (typeof componentClass.toDeletionIdentifier !== 'function') {
84
+ throw new TypeError('Component class must have a toDeletionIdentifier() method');
85
+ }
86
+ const deletion = componentClass.toDeletionIdentifier(identifier);
87
+ if (!deletion.type) {
88
+ throw new Error('type is required');
89
+ }
90
+ if (Object.keys(deletion).length <= 1) {
91
+ throw new Error('identifier is required');
92
+ }
93
+ this._componentsToDelete.push({ ...deletion });
94
+ return this;
95
+ }
96
+ /**
97
+ * Returns the manifest as a plain object with `metadata`, a flat `components` array,
98
+ * and a `components_to_delete` array when deletions are registered.
99
+ *
100
+ * @returns `{ metadata: { key, name, description? }, components, components_to_delete? }`
55
101
  */
56
102
  buildManifest() {
57
103
  const metadata = {
@@ -62,7 +108,11 @@ export class ManifestBuilder {
62
108
  metadata['description'] = this.description;
63
109
  }
64
110
  const components = this._components.map((c) => c.toDict());
65
- return { metadata, components };
111
+ const manifest = { metadata, components };
112
+ if (this._componentsToDelete.length > 0) {
113
+ manifest.components_to_delete = this.componentsToDeleteList();
114
+ }
115
+ return manifest;
66
116
  }
67
117
  /**
68
118
  * Returns the flat list of all registered component dicts.
@@ -72,6 +122,14 @@ export class ManifestBuilder {
72
122
  componentsList() {
73
123
  return this._components.map((c) => c.toDict());
74
124
  }
125
+ /**
126
+ * Returns the flat list of component deletion references.
127
+ *
128
+ * @returns An array of component identifier objects, in registration order.
129
+ */
130
+ componentsToDeleteList() {
131
+ return this._componentsToDelete.map((component) => ({ ...component }));
132
+ }
75
133
  /**
76
134
  * Returns the full manifest as a pretty-printed JSON string.
77
135
  *
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-builder.mjs","sourceRoot":"","sources":["../../src/lib/manifest/manifest-builder.ts"],"names":[],"mappings":"AA8CA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,eAAe;IAM1B;;;OAGG;IACH,YAAY,KAA2B;QANtB,gBAAW,GAAwB,EAAE,CAAC;QAOrD,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,SAA4B;QACpC,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC3C,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,aAAa;QACX,MAAM,QAAQ,GAAwB;YACpC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;QACF,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QAC7C,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;OAOG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;CACF"}
1
+ {"version":3,"file":"manifest-builder.mjs","sourceRoot":"","sources":["../../src/lib/manifest/manifest-builder.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { FunctionRuntime } from "./_helpers.mjs";
2
- import type { ManifestScope } from "./manifest-builder.mjs";
2
+ import { type ExistingManifestContextOptions } from "./existing-manifest-context.mjs";
3
+ import type { ManifestComponentDeletion, ManifestScope } from "./manifest-builder.mjs";
3
4
  /**
4
5
  * Initialization properties for {@link ManifestFunction}.
5
6
  */
@@ -98,6 +99,8 @@ export interface ManifestFunctionProps {
98
99
  * @see {@link SduiPage} — wraps a `ManifestFunction` as a navigable UI surface.
99
100
  */
100
101
  export declare class ManifestFunction {
102
+ static readonly componentType: "FUNCTION";
103
+ static toDeletionIdentifier(apiName: string): ManifestComponentDeletion;
101
104
  private readonly _apiName;
102
105
  private readonly _name;
103
106
  private readonly _code;
@@ -111,6 +114,12 @@ export declare class ManifestFunction {
111
114
  * @param props - Initialization properties.
112
115
  */
113
116
  constructor(scope: ManifestScope, props: ManifestFunctionProps);
117
+ /**
118
+ * Loads this function from the active existing-manifest JSON context.
119
+ */
120
+ static loadFromExisting(apiName: string, options?: ExistingManifestContextOptions): ManifestFunction;
121
+ /** @internal Hydrates a function from existing manifest wire JSON. */
122
+ static _fromExistingComponent(scope: ManifestScope, component: Record<string, any>): ManifestFunction;
114
123
  /**
115
124
  * Returns the api_name of this function (e.g. `'gym_today_schedule_fn'`).
116
125
  */
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-function.d.mts","sourceRoot":"","sources":["../../src/lib/manifest/manifest-function.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,eAAe,EAAE;OACxB,KAAK,EAAE,aAAa,EAAE;AAE7B;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqC;IACnE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAkC;IACrE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuB;IACvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IAEnC;;;OAGG;gBACS,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,qBAAqB;IAe9D;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;;;OAIG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAc9B"}
1
+ {"version":3,"file":"manifest-function.d.mts","sourceRoot":"","sources":["../../src/lib/manifest/manifest-function.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,eAAe,EAAE;OACxB,EAA8B,KAAK,8BAA8B,EAAE;OACnE,KAAK,EAAE,yBAAyB,EAAE,aAAa,EAAE;AAExD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAG,UAAU,CAAU;IAEpD,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,yBAAyB;IAOvE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqC;IACnE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAkC;IACrE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuB;IACvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IAEnC;;;OAGG;gBACS,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,qBAAqB;IAe9D;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,8BAAmC,GAAG,gBAAgB;IAIxG,sEAAsE;IACtE,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB;IAgBrG;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;;;OAIG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAc9B"}
@@ -1,5 +1,6 @@
1
1
  import type { FunctionRuntime } from "./_helpers.js";
2
- import type { ManifestScope } from "./manifest-builder.js";
2
+ import { type ExistingManifestContextOptions } from "./existing-manifest-context.js";
3
+ import type { ManifestComponentDeletion, ManifestScope } from "./manifest-builder.js";
3
4
  /**
4
5
  * Initialization properties for {@link ManifestFunction}.
5
6
  */
@@ -98,6 +99,8 @@ export interface ManifestFunctionProps {
98
99
  * @see {@link SduiPage} — wraps a `ManifestFunction` as a navigable UI surface.
99
100
  */
100
101
  export declare class ManifestFunction {
102
+ static readonly componentType: "FUNCTION";
103
+ static toDeletionIdentifier(apiName: string): ManifestComponentDeletion;
101
104
  private readonly _apiName;
102
105
  private readonly _name;
103
106
  private readonly _code;
@@ -111,6 +114,12 @@ export declare class ManifestFunction {
111
114
  * @param props - Initialization properties.
112
115
  */
113
116
  constructor(scope: ManifestScope, props: ManifestFunctionProps);
117
+ /**
118
+ * Loads this function from the active existing-manifest JSON context.
119
+ */
120
+ static loadFromExisting(apiName: string, options?: ExistingManifestContextOptions): ManifestFunction;
121
+ /** @internal Hydrates a function from existing manifest wire JSON. */
122
+ static _fromExistingComponent(scope: ManifestScope, component: Record<string, any>): ManifestFunction;
114
123
  /**
115
124
  * Returns the api_name of this function (e.g. `'gym_today_schedule_fn'`).
116
125
  */
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-function.d.ts","sourceRoot":"","sources":["../../src/lib/manifest/manifest-function.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,eAAe,EAAE;OACxB,KAAK,EAAE,aAAa,EAAE;AAE7B;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqC;IACnE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAkC;IACrE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuB;IACvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IAEnC;;;OAGG;gBACS,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,qBAAqB;IAe9D;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;;;OAIG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAc9B"}
1
+ {"version":3,"file":"manifest-function.d.ts","sourceRoot":"","sources":["../../src/lib/manifest/manifest-function.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,eAAe,EAAE;OACxB,EAA8B,KAAK,8BAA8B,EAAE;OACnE,KAAK,EAAE,yBAAyB,EAAE,aAAa,EAAE;AAExD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAG,UAAU,CAAU;IAEpD,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,yBAAyB;IAOvE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqC;IACnE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAkC;IACrE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuB;IACvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IAEnC;;;OAGG;gBACS,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,qBAAqB;IAe9D;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,8BAAmC,GAAG,gBAAgB;IAIxG,sEAAsE;IACtE,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB;IAgBrG;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;;;OAIG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAc9B"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ManifestFunction = void 0;
4
+ const existing_manifest_context_1 = require("./existing-manifest-context.js");
4
5
  /**
5
6
  * Defines a serverless function and registers it with the manifest.
6
7
  *
@@ -37,6 +38,12 @@ exports.ManifestFunction = void 0;
37
38
  * @see {@link SduiPage} — wraps a `ManifestFunction` as a navigable UI surface.
38
39
  */
39
40
  class ManifestFunction {
41
+ static toDeletionIdentifier(apiName) {
42
+ return {
43
+ type: ManifestFunction.componentType,
44
+ api_name: apiName,
45
+ };
46
+ }
40
47
  /**
41
48
  * @param scope - The manifest to register this function with.
42
49
  * @param props - Initialization properties.
@@ -55,6 +62,33 @@ class ManifestFunction {
55
62
  this._isAsync = props.isAsync ?? false;
56
63
  scope._register(this);
57
64
  }
65
+ /**
66
+ * Loads this function from the active existing-manifest JSON context.
67
+ */
68
+ static loadFromExisting(apiName, options = {}) {
69
+ return (0, existing_manifest_context_1.getExistingManifestContext)(options).loadFunction(apiName);
70
+ }
71
+ /** @internal Hydrates a function from existing manifest wire JSON. */
72
+ static _fromExistingComponent(scope, component) {
73
+ const props = {
74
+ apiName: component['api_name'],
75
+ name: component['name'] ?? component['api_name'],
76
+ };
77
+ if (component['code_draft'] !== undefined)
78
+ props.code = component['code_draft'];
79
+ if (component['description'] !== undefined)
80
+ props.description = component['description'];
81
+ if (component['dependencies'] !== undefined)
82
+ props.dependencies = component['dependencies'];
83
+ if (component['deployment_options'] !== undefined) {
84
+ props.deploymentOptions = component['deployment_options'];
85
+ }
86
+ if (component['allowed_domains'] !== undefined)
87
+ props.allowedDomains = component['allowed_domains'];
88
+ if (component['is_async'] !== undefined)
89
+ props.isAsync = component['is_async'];
90
+ return new ManifestFunction(scope, props);
91
+ }
58
92
  /**
59
93
  * Returns the api_name of this function (e.g. `'gym_today_schedule_fn'`).
60
94
  */
@@ -68,7 +102,7 @@ class ManifestFunction {
68
102
  */
69
103
  toDict() {
70
104
  const component = {
71
- type: 'FUNCTION',
105
+ type: ManifestFunction.componentType,
72
106
  name: this._name,
73
107
  api_name: this._apiName,
74
108
  };
@@ -88,4 +122,5 @@ class ManifestFunction {
88
122
  }
89
123
  }
90
124
  exports.ManifestFunction = ManifestFunction;
125
+ ManifestFunction.componentType = 'FUNCTION';
91
126
  //# sourceMappingURL=manifest-function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-function.js","sourceRoot":"","sources":["../../src/lib/manifest/manifest-function.ts"],"names":[],"mappings":";;;AAkEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAa,gBAAgB;IAU3B;;;OAGG;IACH,YAAY,KAAoB,EAAE,KAA4B;QAC5D,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,iBAAiB,CAAC;QAClD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,kBAAkB,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAC3F,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC;QACvC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,MAAM,SAAS,GAAwB;YACrC,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;QACF,IAAI,IAAI,CAAC,YAAY;YAAE,SAAS,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;QACpE,IAAI,IAAI,CAAC,KAAK;YAAE,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACrD,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI;YAAE,SAAS,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/E,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI;YAAE,SAAS,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC/F,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI;YAAE,SAAS,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;QACtF,IAAI,IAAI,CAAC,QAAQ;YAAE,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAvDD,4CAuDC"}
1
+ {"version":3,"file":"manifest-function.js","sourceRoot":"","sources":["../../src/lib/manifest/manifest-function.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { getExistingManifestContext } from "./existing-manifest-context.mjs";
1
2
  /**
2
3
  * Defines a serverless function and registers it with the manifest.
3
4
  *
@@ -34,6 +35,12 @@
34
35
  * @see {@link SduiPage} — wraps a `ManifestFunction` as a navigable UI surface.
35
36
  */
36
37
  export class ManifestFunction {
38
+ static toDeletionIdentifier(apiName) {
39
+ return {
40
+ type: ManifestFunction.componentType,
41
+ api_name: apiName,
42
+ };
43
+ }
37
44
  /**
38
45
  * @param scope - The manifest to register this function with.
39
46
  * @param props - Initialization properties.
@@ -52,6 +59,33 @@ export class ManifestFunction {
52
59
  this._isAsync = props.isAsync ?? false;
53
60
  scope._register(this);
54
61
  }
62
+ /**
63
+ * Loads this function from the active existing-manifest JSON context.
64
+ */
65
+ static loadFromExisting(apiName, options = {}) {
66
+ return getExistingManifestContext(options).loadFunction(apiName);
67
+ }
68
+ /** @internal Hydrates a function from existing manifest wire JSON. */
69
+ static _fromExistingComponent(scope, component) {
70
+ const props = {
71
+ apiName: component['api_name'],
72
+ name: component['name'] ?? component['api_name'],
73
+ };
74
+ if (component['code_draft'] !== undefined)
75
+ props.code = component['code_draft'];
76
+ if (component['description'] !== undefined)
77
+ props.description = component['description'];
78
+ if (component['dependencies'] !== undefined)
79
+ props.dependencies = component['dependencies'];
80
+ if (component['deployment_options'] !== undefined) {
81
+ props.deploymentOptions = component['deployment_options'];
82
+ }
83
+ if (component['allowed_domains'] !== undefined)
84
+ props.allowedDomains = component['allowed_domains'];
85
+ if (component['is_async'] !== undefined)
86
+ props.isAsync = component['is_async'];
87
+ return new ManifestFunction(scope, props);
88
+ }
55
89
  /**
56
90
  * Returns the api_name of this function (e.g. `'gym_today_schedule_fn'`).
57
91
  */
@@ -65,7 +99,7 @@ export class ManifestFunction {
65
99
  */
66
100
  toDict() {
67
101
  const component = {
68
- type: 'FUNCTION',
102
+ type: ManifestFunction.componentType,
69
103
  name: this._name,
70
104
  api_name: this._apiName,
71
105
  };
@@ -84,4 +118,5 @@ export class ManifestFunction {
84
118
  return component;
85
119
  }
86
120
  }
121
+ ManifestFunction.componentType = 'FUNCTION';
87
122
  //# sourceMappingURL=manifest-function.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-function.mjs","sourceRoot":"","sources":["../../src/lib/manifest/manifest-function.ts"],"names":[],"mappings":"AAkEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,OAAO,gBAAgB;IAU3B;;;OAGG;IACH,YAAY,KAAoB,EAAE,KAA4B;QAC5D,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,iBAAiB,CAAC;QAClD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,kBAAkB,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAC3F,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC;QACvC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,MAAM,SAAS,GAAwB;YACrC,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;QACF,IAAI,IAAI,CAAC,YAAY;YAAE,SAAS,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;QACpE,IAAI,IAAI,CAAC,KAAK;YAAE,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACrD,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI;YAAE,SAAS,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/E,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI;YAAE,SAAS,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC/F,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI;YAAE,SAAS,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;QACtF,IAAI,IAAI,CAAC,QAAQ;YAAE,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
1
+ {"version":3,"file":"manifest-function.mjs","sourceRoot":"","sources":["../../src/lib/manifest/manifest-function.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,12 @@
1
1
  import { type TriggerType, type UpdateTriggerType } from "./_helpers.mjs";
2
2
  import type { CustomObject } from "./custom-object.mjs";
3
+ import { type ExistingManifestContextOptions } from "./existing-manifest-context.mjs";
3
4
  import type { Field } from "./field.mjs";
5
+ import type { ManifestComponentDeletion } from "./manifest-builder.mjs";
6
+ export interface RuleDeletionIdentifier {
7
+ flowId: string;
8
+ modelRqlName: string;
9
+ }
4
10
  /**
5
11
  * A single action performed when a {@link Rule} fires.
6
12
  */
@@ -76,6 +82,9 @@ export interface RuleProps {
76
82
  */
77
83
  actions?: RuleAction[];
78
84
  }
85
+ export interface RuleLoadFromExistingOptions extends ExistingManifestContextOptions {
86
+ customObjectApiName?: string;
87
+ }
79
88
  /**
80
89
  * Defines a record-triggered automation rule and registers it with the manifest.
81
90
  *
@@ -95,6 +104,8 @@ export interface RuleProps {
95
104
  * ```
96
105
  */
97
106
  export declare class Rule {
107
+ static readonly componentType: "CUSTOM_OBJECT_RECORD_TRIGGERED_FLOW";
108
+ static toDeletionIdentifier(identifier: RuleDeletionIdentifier): ManifestComponentDeletion;
98
109
  private readonly _flowId;
99
110
  private readonly _customObjectApiName;
100
111
  private readonly _flowName;
@@ -109,6 +120,12 @@ export declare class Rule {
109
120
  * @throws {Error} If `props.triggerType` is not one of `'CREATE'`, `'UPDATE'`, `'CREATE_OR_UPDATE'`.
110
121
  */
111
122
  constructor(customObject: CustomObject, props: RuleProps);
123
+ /**
124
+ * Loads this record-triggered rule from the active existing-manifest JSON context.
125
+ */
126
+ static loadFromExisting(flowId: string, options?: RuleLoadFromExistingOptions): Rule;
127
+ /** @internal Hydrates a record-triggered rule from existing manifest wire JSON. */
128
+ static _fromExistingComponent(customObject: CustomObject, component: Record<string, any>, resolveField: (apiName: string) => Field): Rule;
112
129
  /**
113
130
  * Returns the stable identifier for this rule (e.g. `'gym_default_enrollment_status'`).
114
131
  */
@@ -1 +1 @@
1
- {"version":3,"file":"rule.d.mts","sourceRoot":"","sources":["../../src/lib/manifest/rule.ts"],"names":[],"mappings":"OAAO,EAAc,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE;OACxD,KAAK,EAAE,YAAY,EAAE;OACrB,KAAK,EAAE,KAAK,EAAE;AAErB;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,WAAW,EAAE,KAAK,CAAC;IACnB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,WAAW,EAAE,WAAW,CAAC;IACzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;CACxB;AA0BD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,IAAI;IACf,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IAExC;;;;OAIG;gBACS,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS;IAkBxD;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;;;;OAKG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAc9B"}
1
+ {"version":3,"file":"rule.d.mts","sourceRoot":"","sources":["../../src/lib/manifest/rule.ts"],"names":[],"mappings":"OAAO,EAAc,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE;OACxD,KAAK,EAAE,YAAY,EAAE;OACrB,EAA8B,KAAK,8BAA8B,EAAE;OACnE,KAAK,EAAE,KAAK,EAAE;OACd,KAAK,EAAE,yBAAyB,EAAE;AAEzC,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,WAAW,EAAE,KAAK,CAAC;IACnB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,WAAW,EAAE,WAAW,CAAC;IACzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,2BAA4B,SAAQ,8BAA8B;IACjF,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AA8BD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,IAAI;IACf,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAG,qCAAqC,CAAU;IAE/E,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,sBAAsB,GAAG,yBAAyB;IAQ1F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IAExC;;;;OAIG;gBACS,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS;IAkBxD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,2BAAgC,GAAG,IAAI;IAIxF,mFAAmF;IACnF,MAAM,CAAC,sBAAsB,CAC3B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,GACvC,IAAI;IAsBP;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;;;;OAKG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAc9B"}
@@ -1,6 +1,12 @@
1
1
  import { type TriggerType, type UpdateTriggerType } from "./_helpers.js";
2
2
  import type { CustomObject } from "./custom-object.js";
3
+ import { type ExistingManifestContextOptions } from "./existing-manifest-context.js";
3
4
  import type { Field } from "./field.js";
5
+ import type { ManifestComponentDeletion } from "./manifest-builder.js";
6
+ export interface RuleDeletionIdentifier {
7
+ flowId: string;
8
+ modelRqlName: string;
9
+ }
4
10
  /**
5
11
  * A single action performed when a {@link Rule} fires.
6
12
  */
@@ -76,6 +82,9 @@ export interface RuleProps {
76
82
  */
77
83
  actions?: RuleAction[];
78
84
  }
85
+ export interface RuleLoadFromExistingOptions extends ExistingManifestContextOptions {
86
+ customObjectApiName?: string;
87
+ }
79
88
  /**
80
89
  * Defines a record-triggered automation rule and registers it with the manifest.
81
90
  *
@@ -95,6 +104,8 @@ export interface RuleProps {
95
104
  * ```
96
105
  */
97
106
  export declare class Rule {
107
+ static readonly componentType: "CUSTOM_OBJECT_RECORD_TRIGGERED_FLOW";
108
+ static toDeletionIdentifier(identifier: RuleDeletionIdentifier): ManifestComponentDeletion;
98
109
  private readonly _flowId;
99
110
  private readonly _customObjectApiName;
100
111
  private readonly _flowName;
@@ -109,6 +120,12 @@ export declare class Rule {
109
120
  * @throws {Error} If `props.triggerType` is not one of `'CREATE'`, `'UPDATE'`, `'CREATE_OR_UPDATE'`.
110
121
  */
111
122
  constructor(customObject: CustomObject, props: RuleProps);
123
+ /**
124
+ * Loads this record-triggered rule from the active existing-manifest JSON context.
125
+ */
126
+ static loadFromExisting(flowId: string, options?: RuleLoadFromExistingOptions): Rule;
127
+ /** @internal Hydrates a record-triggered rule from existing manifest wire JSON. */
128
+ static _fromExistingComponent(customObject: CustomObject, component: Record<string, any>, resolveField: (apiName: string) => Field): Rule;
112
129
  /**
113
130
  * Returns the stable identifier for this rule (e.g. `'gym_default_enrollment_status'`).
114
131
  */
@@ -1 +1 @@
1
- {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../src/lib/manifest/rule.ts"],"names":[],"mappings":"OAAO,EAAc,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE;OACxD,KAAK,EAAE,YAAY,EAAE;OACrB,KAAK,EAAE,KAAK,EAAE;AAErB;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,WAAW,EAAE,KAAK,CAAC;IACnB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,WAAW,EAAE,WAAW,CAAC;IACzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;CACxB;AA0BD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,IAAI;IACf,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IAExC;;;;OAIG;gBACS,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS;IAkBxD;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;;;;OAKG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAc9B"}
1
+ {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../src/lib/manifest/rule.ts"],"names":[],"mappings":"OAAO,EAAc,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE;OACxD,KAAK,EAAE,YAAY,EAAE;OACrB,EAA8B,KAAK,8BAA8B,EAAE;OACnE,KAAK,EAAE,KAAK,EAAE;OACd,KAAK,EAAE,yBAAyB,EAAE;AAEzC,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,WAAW,EAAE,KAAK,CAAC;IACnB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,WAAW,EAAE,WAAW,CAAC;IACzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,2BAA4B,SAAQ,8BAA8B;IACjF,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AA8BD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,IAAI;IACf,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAG,qCAAqC,CAAU;IAE/E,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,sBAAsB,GAAG,yBAAyB;IAQ1F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IAExC;;;;OAIG;gBACS,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS;IAkBxD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,2BAAgC,GAAG,IAAI;IAIxF,mFAAmF;IACnF,MAAM,CAAC,sBAAsB,CAC3B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,GACvC,IAAI;IAsBP;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;;;;OAKG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAc9B"}