@superblocksteam/shared 0.9591.3 → 0.9592.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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/types/application/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const index_1 = require("./index");
5
+ (0, vitest_1.describe)('SDK API application templates', () => {
6
+ (0, vitest_1.it)('classifies app-fullstack as the 3.0 SDK API template', () => {
7
+ (0, vitest_1.expect)((0, index_1.isSdkApiTemplate)('app-fullstack')).toBe(true);
8
+ (0, vitest_1.expect)((0, index_1.isSdkApiCommitTemplate)('app-fullstack')).toBe(true);
9
+ });
10
+ vitest_1.it.each([undefined, null, '', index_1.LEGACY_COMMIT_TEMPLATE_NAME, 'shadcn-demo-app'])('classifies %s as a legacy non-SDK API commit template', (templateName) => {
11
+ (0, vitest_1.expect)((0, index_1.isSdkApiCommitTemplate)(templateName)).toBe(false);
12
+ });
13
+ (0, vitest_1.it)('normalizes missing commit templates to the legacy template name', () => {
14
+ (0, vitest_1.expect)((0, index_1.effectiveCommitTemplateName)(undefined)).toBe(index_1.LEGACY_COMMIT_TEMPLATE_NAME);
15
+ (0, vitest_1.expect)((0, index_1.effectiveCommitTemplateName)(null)).toBe(index_1.LEGACY_COMMIT_TEMPLATE_NAME);
16
+ });
17
+ });
18
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/types/application/index.test.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAE9C,mCAA6H;AAE7H,IAAA,iBAAQ,EAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,IAAA,WAAE,EAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,IAAA,eAAM,EAAC,IAAA,wBAAgB,EAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,IAAA,eAAM,EAAC,IAAA,8BAAsB,EAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,WAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,mCAA2B,EAAE,iBAAiB,CAAC,CAAC,CAC5E,uDAAuD,EACvD,CAAC,YAAY,EAAE,EAAE;QACf,IAAA,eAAM,EAAC,IAAA,8BAAsB,EAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC,CACF,CAAC;IAEF,IAAA,WAAE,EAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,IAAA,eAAM,EAAC,IAAA,mCAA2B,EAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,mCAA2B,CAAC,CAAC;QACjF,IAAA,eAAM,EAAC,IAAA,mCAA2B,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,mCAA2B,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -73,4 +73,13 @@ export type PolicyGateReadinessTarget = {
73
73
  * constant so the contract doesn't rely on fragile string matching.
74
74
  */
75
75
  export declare const POLICY_GATE_BLOCKED_ERROR = "POLICY_GATE_BLOCKED";
76
+ /**
77
+ * User-facing message returned when a deploy is rejected because a dev-server
78
+ * policy gate has not yet run against the version being deployed and the
79
+ * current live edit state no longer matches that version. The dev-server scan
80
+ * evaluates the live edit working tree, so running it for the first time
81
+ * against a divergent live edit would review the wrong code. Surfaced directly
82
+ * to the user, and shared so server and client agree on the exact text.
83
+ */
84
+ export declare const POLICY_GATE_STALE_LIVE_EDIT_ERROR = "Policy gates can only run for the current app state. Deploy the current changes or restore to this commit and then deploy.";
76
85
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/policyGate/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/policyGate/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.POLICY_GATE_BLOCKED_ERROR = exports.SECURITY_SCANS_ENABLED = void 0;
3
+ exports.POLICY_GATE_STALE_LIVE_EDIT_ERROR = exports.POLICY_GATE_BLOCKED_ERROR = exports.SECURITY_SCANS_ENABLED = void 0;
4
4
  // Single source of truth for the built-in security scan surfaces; flip to `true` to restore the security-scan UI and execution.
5
5
  exports.SECURITY_SCANS_ENABLED = false;
6
6
  /**
@@ -9,4 +9,13 @@ exports.SECURITY_SCANS_ENABLED = false;
9
9
  * constant so the contract doesn't rely on fragile string matching.
10
10
  */
11
11
  exports.POLICY_GATE_BLOCKED_ERROR = 'POLICY_GATE_BLOCKED';
12
+ /**
13
+ * User-facing message returned when a deploy is rejected because a dev-server
14
+ * policy gate has not yet run against the version being deployed and the
15
+ * current live edit state no longer matches that version. The dev-server scan
16
+ * evaluates the live edit working tree, so running it for the first time
17
+ * against a divergent live edit would review the wrong code. Surfaced directly
18
+ * to the user, and shared so server and client agree on the exact text.
19
+ */
20
+ exports.POLICY_GATE_STALE_LIVE_EDIT_ERROR = 'Policy gates can only run for the current app state. Deploy the current changes or restore to this commit and then deploy.';
12
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/policyGate/index.ts"],"names":[],"mappings":";;;AAAA,gIAAgI;AACnH,QAAA,sBAAsB,GAAY,KAAK,CAAC;AAkGrD;;;;GAIG;AACU,QAAA,yBAAyB,GAAG,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/policyGate/index.ts"],"names":[],"mappings":";;;AAAA,gIAAgI;AACnH,QAAA,sBAAsB,GAAY,KAAK,CAAC;AAkGrD;;;;GAIG;AACU,QAAA,yBAAyB,GAAG,qBAAqB,CAAC;AAE/D;;;;;;;GAOG;AACU,QAAA,iCAAiC,GAC5C,4HAA4H,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/types/application/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { effectiveCommitTemplateName, isSdkApiCommitTemplate, isSdkApiTemplate, LEGACY_COMMIT_TEMPLATE_NAME } from './index';
3
+ describe('SDK API application templates', () => {
4
+ it('classifies app-fullstack as the 3.0 SDK API template', () => {
5
+ expect(isSdkApiTemplate('app-fullstack')).toBe(true);
6
+ expect(isSdkApiCommitTemplate('app-fullstack')).toBe(true);
7
+ });
8
+ it.each([undefined, null, '', LEGACY_COMMIT_TEMPLATE_NAME, 'shadcn-demo-app'])('classifies %s as a legacy non-SDK API commit template', (templateName) => {
9
+ expect(isSdkApiCommitTemplate(templateName)).toBe(false);
10
+ });
11
+ it('normalizes missing commit templates to the legacy template name', () => {
12
+ expect(effectiveCommitTemplateName(undefined)).toBe(LEGACY_COMMIT_TEMPLATE_NAME);
13
+ expect(effectiveCommitTemplateName(null)).toBe(LEGACY_COMMIT_TEMPLATE_NAME);
14
+ });
15
+ });
16
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/types/application/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAE7H,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,2BAA2B,EAAE,iBAAiB,CAAC,CAAC,CAC5E,uDAAuD,EACvD,CAAC,YAAY,EAAE,EAAE;QACf,MAAM,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC,CACF,CAAC;IAEF,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACjF,MAAM,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -73,4 +73,13 @@ export type PolicyGateReadinessTarget = {
73
73
  * constant so the contract doesn't rely on fragile string matching.
74
74
  */
75
75
  export declare const POLICY_GATE_BLOCKED_ERROR = "POLICY_GATE_BLOCKED";
76
+ /**
77
+ * User-facing message returned when a deploy is rejected because a dev-server
78
+ * policy gate has not yet run against the version being deployed and the
79
+ * current live edit state no longer matches that version. The dev-server scan
80
+ * evaluates the live edit working tree, so running it for the first time
81
+ * against a divergent live edit would review the wrong code. Surfaced directly
82
+ * to the user, and shared so server and client agree on the exact text.
83
+ */
84
+ export declare const POLICY_GATE_STALE_LIVE_EDIT_ERROR = "Policy gates can only run for the current app state. Deploy the current changes or restore to this commit and then deploy.";
76
85
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/policyGate/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/policyGate/index.ts"],"names":[],"mappings":"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"}
@@ -6,4 +6,13 @@ export const SECURITY_SCANS_ENABLED = false;
6
6
  * constant so the contract doesn't rely on fragile string matching.
7
7
  */
8
8
  export const POLICY_GATE_BLOCKED_ERROR = 'POLICY_GATE_BLOCKED';
9
+ /**
10
+ * User-facing message returned when a deploy is rejected because a dev-server
11
+ * policy gate has not yet run against the version being deployed and the
12
+ * current live edit state no longer matches that version. The dev-server scan
13
+ * evaluates the live edit working tree, so running it for the first time
14
+ * against a divergent live edit would review the wrong code. Surfaced directly
15
+ * to the user, and shared so server and client agree on the exact text.
16
+ */
17
+ export const POLICY_GATE_STALE_LIVE_EDIT_ERROR = 'Policy gates can only run for the current app state. Deploy the current changes or restore to this commit and then deploy.';
9
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/policyGate/index.ts"],"names":[],"mappings":"AAAA,gIAAgI;AAChI,MAAM,CAAC,MAAM,sBAAsB,GAAY,KAAK,CAAC;AAkGrD;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/policyGate/index.ts"],"names":[],"mappings":"AAAA,gIAAgI;AAChI,MAAM,CAAC,MAAM,sBAAsB,GAAY,KAAK,CAAC;AAkGrD;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAE/D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAC5C,4HAA4H,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@superblocksteam/shared",
3
- "version": "0.9591.3",
3
+ "version": "0.9592.0",
4
4
  "description": "Superblocks Shared Resources",
5
5
  "license": "Superblocks Community Software License",
6
6
  "repository": "https://github.com/superblocksteam/shared.git",
@@ -0,0 +1,22 @@
1
+ import { describe, expect, it } from 'vitest';
2
+
3
+ import { effectiveCommitTemplateName, isSdkApiCommitTemplate, isSdkApiTemplate, LEGACY_COMMIT_TEMPLATE_NAME } from './index';
4
+
5
+ describe('SDK API application templates', () => {
6
+ it('classifies app-fullstack as the 3.0 SDK API template', () => {
7
+ expect(isSdkApiTemplate('app-fullstack')).toBe(true);
8
+ expect(isSdkApiCommitTemplate('app-fullstack')).toBe(true);
9
+ });
10
+
11
+ it.each([undefined, null, '', LEGACY_COMMIT_TEMPLATE_NAME, 'shadcn-demo-app'])(
12
+ 'classifies %s as a legacy non-SDK API commit template',
13
+ (templateName) => {
14
+ expect(isSdkApiCommitTemplate(templateName)).toBe(false);
15
+ }
16
+ );
17
+
18
+ it('normalizes missing commit templates to the legacy template name', () => {
19
+ expect(effectiveCommitTemplateName(undefined)).toBe(LEGACY_COMMIT_TEMPLATE_NAME);
20
+ expect(effectiveCommitTemplateName(null)).toBe(LEGACY_COMMIT_TEMPLATE_NAME);
21
+ });
22
+ });
@@ -103,3 +103,14 @@ export type PolicyGateReadinessTarget = {
103
103
  * constant so the contract doesn't rely on fragile string matching.
104
104
  */
105
105
  export const POLICY_GATE_BLOCKED_ERROR = 'POLICY_GATE_BLOCKED';
106
+
107
+ /**
108
+ * User-facing message returned when a deploy is rejected because a dev-server
109
+ * policy gate has not yet run against the version being deployed and the
110
+ * current live edit state no longer matches that version. The dev-server scan
111
+ * evaluates the live edit working tree, so running it for the first time
112
+ * against a divergent live edit would review the wrong code. Surfaced directly
113
+ * to the user, and shared so server and client agree on the exact text.
114
+ */
115
+ export const POLICY_GATE_STALE_LIVE_EDIT_ERROR =
116
+ 'Policy gates can only run for the current app state. Deploy the current changes or restore to this commit and then deploy.';