@ankhorage/studio 5.10.8 → 5.10.9

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/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  # @ankhorage/studio
5
5
 
6
- ![license: MIT](././paradox/badges/license.svg) ![npm: v5.10.8](././paradox/badges/npm.svg) ![runtime: bun](././paradox/badges/runtime.svg) ![typescript: strict](././paradox/badges/typescript.svg) ![eslint: checked](././paradox/badges/eslint.svg) ![prettier: checked](././paradox/badges/prettier.svg) ![build: checked](././paradox/badges/build.svg) ![tests: checked](././paradox/badges/tests.svg) ![docs: paradox](././paradox/badges/docs.svg)
6
+ ![license: MIT](././paradox/badges/license.svg) ![npm: v5.10.9](././paradox/badges/npm.svg) ![runtime: bun](././paradox/badges/runtime.svg) ![typescript: strict](././paradox/badges/typescript.svg) ![eslint: checked](././paradox/badges/eslint.svg) ![prettier: checked](././paradox/badges/prettier.svg) ![build: checked](././paradox/badges/build.svg) ![tests: checked](././paradox/badges/tests.svg) ![docs: paradox](././paradox/badges/docs.svg)
7
7
 
8
8
  Studio authoring package for Ankhorage apps
9
9
 
package/apm/update.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "protocolVersion": 1,
3
3
  "schemaVersion": 1,
4
- "owner": { "name": "@ankhorage/studio", "version": "5.10.8" },
4
+ "owner": { "name": "@ankhorage/studio", "version": "5.10.9" },
5
5
  "history": {
6
6
  "supported": [{ "sourceRange": ">=2.5.7 <3.0.0", "mode": "no-migration" }],
7
7
  "unsupported": [],
@@ -0,0 +1,4 @@
1
+ /*** Canonical Studio project identity syntax and workspace-reserved ids. */
2
+ export declare const STUDIO_PROJECT_ID_PATTERN: RegExp;
3
+ export declare const STUDIO_RESERVED_PROJECT_IDS: ReadonlySet<string>;
4
+ //# sourceMappingURL=projectIdentity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectIdentity.d.ts","sourceRoot":"","sources":["../../src/constants/projectIdentity.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,QAAgC,CAAC;AACvE,eAAO,MAAM,2BAA2B,EAAE,WAAW,CAAC,MAAM,CAAuB,CAAC"}
@@ -0,0 +1,4 @@
1
+ /*** Canonical Studio project identity syntax and workspace-reserved ids. */
2
+ export const STUDIO_PROJECT_ID_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/u;
3
+ export const STUDIO_RESERVED_PROJECT_IDS = new Set(['studio']);
4
+ //# sourceMappingURL=projectIdentity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectIdentity.js","sourceRoot":"","sources":["../../src/constants/projectIdentity.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,MAAM,CAAC,MAAM,yBAAyB,GAAG,6BAA6B,CAAC;AACvE,MAAM,CAAC,MAAM,2BAA2B,GAAwB,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"projectPaths.d.ts","sourceRoot":"","sources":["../../../src/host/orchestrator/projectPaths.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,UAE3C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,UAUhD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAQjE"}
1
+ {"version":3,"file":"projectPaths.d.ts","sourceRoot":"","sources":["../../../src/host/orchestrator/projectPaths.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,UAE3C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,UAUhD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAQjE"}
@@ -1,6 +1,5 @@
1
1
  import path from 'node:path';
2
- const PROJECT_ID_PATTERN = /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/u;
3
- const RESERVED_PROJECT_IDS = new Set(['studio']);
2
+ import { STUDIO_PROJECT_ID_PATTERN, STUDIO_RESERVED_PROJECT_IDS, } from '../../constants/projectIdentity';
4
3
  /***
5
4
  * Resolve the Studio workspace directory containing generated application projects.
6
5
  * @todo Move project path policy from generic `host/orchestrator` into the `projects/` domain host edge.
@@ -15,8 +14,8 @@ export function getAppsRoot(rootPath) {
15
14
  export function assertProjectId(projectId) {
16
15
  if (projectId.length === 0 ||
17
16
  path.basename(projectId) !== projectId ||
18
- !PROJECT_ID_PATTERN.test(projectId) ||
19
- RESERVED_PROJECT_IDS.has(projectId)) {
17
+ !STUDIO_PROJECT_ID_PATTERN.test(projectId) ||
18
+ STUDIO_RESERVED_PROJECT_IDS.has(projectId)) {
20
19
  throw new Error(`Invalid project id: ${projectId}`);
21
20
  }
22
21
  return projectId;
@@ -1 +1 @@
1
- {"version":3,"file":"projectPaths.js","sourceRoot":"","sources":["../../../src/host/orchestrator/projectPaths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,kBAAkB,GAAG,oCAAoC,CAAC;AAChE,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEjD;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,IACE,SAAS,CAAC,MAAM,KAAK,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,SAAS;QACtC,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC;QACnC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,EACnC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,SAAiB;IAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnD,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"projectPaths.js","sourceRoot":"","sources":["../../../src/host/orchestrator/projectPaths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,iCAAiC,CAAC;AAEzC;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,IACE,SAAS,CAAC,MAAM,KAAK,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,SAAS;QACtC,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1C,2BAA2B,CAAC,GAAG,CAAC,SAAS,CAAC,EAC1C,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,SAAiB;IAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnD,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"projectIdentity.d.ts","sourceRoot":"","sources":["../src/projectIdentity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gCAAgC,EAChC,+BAA+B,EAC/B,oBAAoB,EACrB,MAAM,6BAA6B,CAAC;AAMrC;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAO3D;AAkBD,yGAAyG;AACzG,qBAAa,8BAA+B,SAAQ,KAAK;IAE3C,QAAQ,CAAC,MAAM,EAAE,gCAAgC;IAD7D,gFAAgF;gBAC3D,MAAM,EAAE,gCAAgC;CAI9D;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,SAAS,oBAAoB,EAAE,CAAC;CACnD,GAAG,+BAA+B,CAwDlC"}
1
+ {"version":3,"file":"projectIdentity.d.ts","sourceRoot":"","sources":["../src/projectIdentity.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,gCAAgC,EAChC,+BAA+B,EAC/B,oBAAoB,EACrB,MAAM,6BAA6B,CAAC;AAErC;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAO3D;AAkBD,yGAAyG;AACzG,qBAAa,8BAA+B,SAAQ,KAAK;IAE3C,QAAQ,CAAC,MAAM,EAAE,gCAAgC;IAD7D,gFAAgF;gBAC3D,MAAM,EAAE,gCAAgC;CAI9D;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,SAAS,oBAAoB,EAAE,CAAC;CACnD,GAAG,+BAA+B,CAwDlC"}
@@ -1,5 +1,4 @@
1
- const RESERVED_PROJECT_IDS = ['studio'];
2
- const PROJECT_ID_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/u;
1
+ import { STUDIO_PROJECT_ID_PATTERN, STUDIO_RESERVED_PROJECT_IDS, } from './constants/projectIdentity';
3
2
  /***
4
3
  * Normalize a project name into a lowercase hyphenated identifier.
5
4
  * @utility @ankhorage/utility/string
@@ -24,7 +23,7 @@ function normalizeProjectName(projectName) {
24
23
  * @todo Move project identity/reserved-id policy under src/projects/.
25
24
  */
26
25
  function isReservedProjectId(projectId) {
27
- return RESERVED_PROJECT_IDS.includes(projectId);
26
+ return STUDIO_RESERVED_PROJECT_IDS.has(projectId);
28
27
  }
29
28
  /*** Represent a failed Studio project-creation validation as an Error carrying its structured reason. */
30
29
  export class ProjectCreationValidationError extends Error {
@@ -50,7 +49,7 @@ export function validateProjectCreationInput(args) {
50
49
  reason: { code: 'empty-name', message: 'Project name is required.' },
51
50
  };
52
51
  }
53
- if (!PROJECT_ID_PATTERN.test(projectId)) {
52
+ if (!STUDIO_PROJECT_ID_PATTERN.test(projectId)) {
54
53
  return {
55
54
  ok: false,
56
55
  projectId,
@@ -1 +1 @@
1
- {"version":3,"file":"projectIdentity.js","sourceRoot":"","sources":["../src/projectIdentity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projectIdentity.js","sourceRoot":"","sources":["../src/projectIdentity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AAOrC;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,OAAO,WAAW;SACf,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,WAAmB;IAC/C,OAAO,WAAW,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAAC,SAAiB;IAC5C,OAAO,2BAA2B,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACpD,CAAC;AAED,yGAAyG;AACzG,MAAM,OAAO,8BAA+B,SAAQ,KAAK;IAElC;IADrB,gFAAgF;IAChF,YAAqB,MAAwC;QAC3D,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QADH,WAAM,GAAN,MAAM,CAAkC;QAE3D,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAC;IAC/C,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAG5C;IACC,MAAM,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE7C,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,SAAS;YACT,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,2BAA2B,EAAE;SACrE,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/C,OAAO;YACL,EAAE,EAAE,KAAK;YACT,SAAS;YACT,MAAM,EAAE;gBACN,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,kEAAkE;aAC5E;SACF,CAAC;IACJ,CAAC;IAED,IAAI,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,SAAS;YACT,MAAM,EAAE;gBACN,IAAI,EAAE,qBAAqB;gBAC3B,OAAO,EAAE,IAAI,SAAS,6CAA6C;aACpE;SACF,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC;QACtE,OAAO;YACL,EAAE,EAAE,KAAK;YACT,SAAS;YACT,MAAM,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,eAAe,SAAS,mBAAmB,EAAE;SAC5F,CAAC;IACJ,CAAC;IAED,IACE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,cAAc,CAAC,EAC9F,CAAC;QACD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,SAAS;YACT,MAAM,EAAE;gBACN,IAAI,EAAE,qBAAqB;gBAC3B,OAAO,EAAE,iBAAiB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB;aAC9D;SACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ankhorage/studio",
3
- "version": "5.10.8",
3
+ "version": "5.10.9",
4
4
  "description": "Studio authoring package for Ankhorage apps",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/ankhorage/studio#readme",