@perses-dev/client 0.54.0-beta.10

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 (137) hide show
  1. package/README.md +3 -0
  2. package/dist/cjs/index.js +32 -0
  3. package/dist/cjs/model/dashboard.js +16 -0
  4. package/dist/cjs/model/datasource-api.js +16 -0
  5. package/dist/cjs/model/datasource.js +16 -0
  6. package/dist/cjs/model/ephemeralDashboard.js +16 -0
  7. package/dist/cjs/model/folder.js +16 -0
  8. package/dist/cjs/model/http.js +16 -0
  9. package/dist/cjs/model/index.js +42 -0
  10. package/dist/cjs/model/kind.js +39 -0
  11. package/dist/cjs/model/resource.js +36 -0
  12. package/dist/cjs/model/role.js +60 -0
  13. package/dist/cjs/model/roleBindings.js +16 -0
  14. package/dist/cjs/model/secret.js +16 -0
  15. package/dist/cjs/model/user.js +16 -0
  16. package/dist/cjs/model/variable.js +34 -0
  17. package/dist/cjs/schema/datasource.js +66 -0
  18. package/dist/cjs/schema/index.js +35 -0
  19. package/dist/cjs/schema/metadata.js +41 -0
  20. package/dist/cjs/schema/role.js +86 -0
  21. package/dist/cjs/schema/rolebinding.js +65 -0
  22. package/dist/cjs/schema/secret.js +211 -0
  23. package/dist/cjs/schema/user.js +57 -0
  24. package/dist/cjs/test/index.js +30 -0
  25. package/dist/cjs/test/render.js +38 -0
  26. package/dist/cjs/test/setup-tests.js +18 -0
  27. package/dist/cjs/util/fetch.js +82 -0
  28. package/dist/cjs/util/index.js +30 -0
  29. package/dist/index.d.ts +4 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +17 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/model/dashboard.d.ts +9 -0
  34. package/dist/model/dashboard.d.ts.map +1 -0
  35. package/dist/model/dashboard.js +15 -0
  36. package/dist/model/dashboard.js.map +1 -0
  37. package/dist/model/datasource-api.d.ts +41 -0
  38. package/dist/model/datasource-api.d.ts.map +1 -0
  39. package/dist/model/datasource-api.js +19 -0
  40. package/dist/model/datasource-api.js.map +1 -0
  41. package/dist/model/datasource.d.ts +28 -0
  42. package/dist/model/datasource.d.ts.map +1 -0
  43. package/dist/model/datasource.js +15 -0
  44. package/dist/model/datasource.js.map +1 -0
  45. package/dist/model/ephemeralDashboard.d.ts +14 -0
  46. package/dist/model/ephemeralDashboard.d.ts.map +1 -0
  47. package/dist/model/ephemeralDashboard.js +15 -0
  48. package/dist/model/ephemeralDashboard.js.map +1 -0
  49. package/dist/model/folder.d.ts +19 -0
  50. package/dist/model/folder.d.ts.map +1 -0
  51. package/dist/model/folder.js +15 -0
  52. package/dist/model/folder.js.map +1 -0
  53. package/dist/model/http.d.ts +2 -0
  54. package/dist/model/http.d.ts.map +1 -0
  55. package/dist/model/http.js +15 -0
  56. package/dist/model/http.js.map +1 -0
  57. package/dist/model/index.d.ts +14 -0
  58. package/dist/model/index.d.ts.map +1 -0
  59. package/dist/model/index.js +27 -0
  60. package/dist/model/index.js.map +1 -0
  61. package/dist/model/kind.d.ts +3 -0
  62. package/dist/model/kind.d.ts.map +1 -0
  63. package/dist/model/kind.js +31 -0
  64. package/dist/model/kind.js.map +1 -0
  65. package/dist/model/resource.d.ts +28 -0
  66. package/dist/model/resource.d.ts.map +1 -0
  67. package/dist/model/resource.js +20 -0
  68. package/dist/model/resource.js.map +1 -0
  69. package/dist/model/role.d.ts +31 -0
  70. package/dist/model/role.d.ts.map +1 -0
  71. package/dist/model/role.js +41 -0
  72. package/dist/model/role.js.map +1 -0
  73. package/dist/model/roleBindings.d.ts +27 -0
  74. package/dist/model/roleBindings.d.ts.map +1 -0
  75. package/dist/model/roleBindings.js +15 -0
  76. package/dist/model/roleBindings.js.map +1 -0
  77. package/dist/model/secret.d.ts +54 -0
  78. package/dist/model/secret.d.ts.map +1 -0
  79. package/dist/model/secret.js +15 -0
  80. package/dist/model/secret.js.map +1 -0
  81. package/dist/model/user.d.ts +21 -0
  82. package/dist/model/user.d.ts.map +1 -0
  83. package/dist/model/user.js +15 -0
  84. package/dist/model/user.js.map +1 -0
  85. package/dist/model/variable.d.ts +58 -0
  86. package/dist/model/variable.d.ts.map +1 -0
  87. package/dist/model/variable.js +18 -0
  88. package/dist/model/variable.js.map +1 -0
  89. package/dist/schema/datasource.d.ts +59 -0
  90. package/dist/schema/datasource.d.ts.map +1 -0
  91. package/dist/schema/datasource.js +41 -0
  92. package/dist/schema/datasource.js.map +1 -0
  93. package/dist/schema/index.d.ts +7 -0
  94. package/dist/schema/index.d.ts.map +1 -0
  95. package/dist/schema/index.js +20 -0
  96. package/dist/schema/index.js.map +1 -0
  97. package/dist/schema/metadata.d.ts +21 -0
  98. package/dist/schema/metadata.d.ts.map +1 -0
  99. package/dist/schema/metadata.js +22 -0
  100. package/dist/schema/metadata.js.map +1 -0
  101. package/dist/schema/role.d.ts +58 -0
  102. package/dist/schema/role.d.ts.map +1 -0
  103. package/dist/schema/role.js +61 -0
  104. package/dist/schema/role.js.map +1 -0
  105. package/dist/schema/rolebinding.d.ts +58 -0
  106. package/dist/schema/rolebinding.d.ts.map +1 -0
  107. package/dist/schema/rolebinding.js +40 -0
  108. package/dist/schema/rolebinding.js.map +1 -0
  109. package/dist/schema/secret.d.ts +1597 -0
  110. package/dist/schema/secret.d.ts.map +1 -0
  111. package/dist/schema/secret.js +189 -0
  112. package/dist/schema/secret.js.map +1 -0
  113. package/dist/schema/user.d.ts +8 -0
  114. package/dist/schema/user.d.ts.map +1 -0
  115. package/dist/schema/user.js +36 -0
  116. package/dist/schema/user.js.map +1 -0
  117. package/dist/test/index.d.ts +2 -0
  118. package/dist/test/index.d.ts.map +1 -0
  119. package/dist/test/index.js +15 -0
  120. package/dist/test/index.js.map +1 -0
  121. package/dist/test/render.d.ts +7 -0
  122. package/dist/test/render.d.ts.map +1 -0
  123. package/dist/test/render.js +32 -0
  124. package/dist/test/render.js.map +1 -0
  125. package/dist/test/setup-tests.d.ts +2 -0
  126. package/dist/test/setup-tests.d.ts.map +1 -0
  127. package/dist/test/setup-tests.js +16 -0
  128. package/dist/test/setup-tests.js.map +1 -0
  129. package/dist/util/fetch.d.ts +28 -0
  130. package/dist/util/fetch.d.ts.map +1 -0
  131. package/dist/util/fetch.js +68 -0
  132. package/dist/util/fetch.js.map +1 -0
  133. package/dist/util/index.d.ts +2 -0
  134. package/dist/util/index.d.ts.map +1 -0
  135. package/dist/util/index.js +15 -0
  136. package/dist/util/index.js.map +1 -0
  137. package/package.json +37 -0
@@ -0,0 +1,58 @@
1
+ import { Metadata, ProjectMetadata } from '@perses-dev/client';
2
+ import { Definition, Display, UnknownSpec } from '@perses-dev/spec';
3
+ export type VariableNameType = string;
4
+ export type VariableValue = string | string[] | null;
5
+ export interface VariableDisplay extends Display {
6
+ hidden?: boolean;
7
+ }
8
+ export interface VariableSpec {
9
+ name: VariableNameType;
10
+ display?: VariableDisplay;
11
+ }
12
+ export interface TextVariableDefinition extends Definition<TextVariableSpec> {
13
+ kind: 'TextVariable';
14
+ }
15
+ export interface TextVariableSpec extends VariableSpec {
16
+ value: string;
17
+ constant?: boolean;
18
+ }
19
+ export interface ListVariableDefinition extends Definition<ListVariableSpec> {
20
+ kind: 'ListVariable';
21
+ }
22
+ export interface ListVariableSpec<PluginSpec = UnknownSpec> extends VariableSpec {
23
+ defaultValue?: VariableValue;
24
+ allowMultiple: boolean;
25
+ allowAllValue: boolean;
26
+ customAllValue?: string;
27
+ capturingRegexp?: string;
28
+ sort?: string;
29
+ plugin: Definition<PluginSpec>;
30
+ }
31
+ export interface BuiltinVariableDefinition extends Definition<BuiltinVariableSpec> {
32
+ kind: 'BuiltinVariable';
33
+ }
34
+ export interface BuiltinVariableSpec extends VariableSpec {
35
+ value: () => string;
36
+ source: string;
37
+ }
38
+ export type VariableDefinition = TextVariableDefinition | ListVariableDefinition;
39
+ /**
40
+ * A variable that belongs to a project.
41
+ */
42
+ export interface VariableResource {
43
+ kind: 'Variable';
44
+ metadata: ProjectMetadata;
45
+ spec: VariableDefinition;
46
+ }
47
+ /**
48
+ * A global variable that doesn´t belong to a project.
49
+ */
50
+ export interface GlobalVariableResource {
51
+ kind: 'GlobalVariable';
52
+ metadata: Metadata;
53
+ spec: VariableDefinition;
54
+ }
55
+ export type VariableType = VariableResource | GlobalVariableResource;
56
+ export declare function getVariableProject(variable: VariableType): string | undefined;
57
+ export declare const DEFAULT_ALL_VALUE: "$__all";
58
+ //# sourceMappingURL=variable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable.d.ts","sourceRoot":"","sources":["../../src/model/variable.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpE,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEtC,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;AAErD,MAAM,WAAW,eAAgB,SAAQ,OAAO;IAC9C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAuB,SAAQ,UAAU,CAAC,gBAAgB,CAAC;IAC1E,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,sBAAuB,SAAQ,UAAU,CAAC,gBAAgB,CAAC;IAC1E,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB,CAAC,UAAU,GAAG,WAAW,CAAE,SAAQ,YAAY;IAC9E,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,yBAA0B,SAAQ,UAAU,CAAC,mBAAmB,CAAC;IAChF,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,KAAK,EAAE,MAAM,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,GAAG,sBAAsB,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,eAAe,CAAC;IAC1B,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAED,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG,sBAAsB,CAAC;AAErE,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,CAE7E;AAED,eAAO,MAAM,iBAAiB,UAAoB,CAAC"}
@@ -0,0 +1,18 @@
1
+ // Copyright The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ export function getVariableProject(variable) {
14
+ return 'project' in variable.metadata ? variable.metadata.project : undefined;
15
+ }
16
+ export const DEFAULT_ALL_VALUE = '$__all';
17
+
18
+ //# sourceMappingURL=variable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/model/variable.ts"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Metadata, ProjectMetadata } from '@perses-dev/client';\nimport { Definition, Display, UnknownSpec } from '@perses-dev/spec';\n\nexport type VariableNameType = string;\n\nexport type VariableValue = string | string[] | null;\n\nexport interface VariableDisplay extends Display {\n hidden?: boolean;\n}\n\nexport interface VariableSpec {\n name: VariableNameType;\n display?: VariableDisplay;\n}\n\nexport interface TextVariableDefinition extends Definition<TextVariableSpec> {\n kind: 'TextVariable';\n}\n\nexport interface TextVariableSpec extends VariableSpec {\n value: string;\n constant?: boolean;\n}\n\nexport interface ListVariableDefinition extends Definition<ListVariableSpec> {\n kind: 'ListVariable';\n}\n\nexport interface ListVariableSpec<PluginSpec = UnknownSpec> extends VariableSpec {\n defaultValue?: VariableValue;\n allowMultiple: boolean;\n allowAllValue: boolean;\n customAllValue?: string;\n capturingRegexp?: string;\n sort?: string;\n plugin: Definition<PluginSpec>;\n}\n\nexport interface BuiltinVariableDefinition extends Definition<BuiltinVariableSpec> {\n kind: 'BuiltinVariable';\n}\n\nexport interface BuiltinVariableSpec extends VariableSpec {\n value: () => string;\n source: string;\n}\n\nexport type VariableDefinition = TextVariableDefinition | ListVariableDefinition;\n\n/**\n * A variable that belongs to a project.\n */\nexport interface VariableResource {\n kind: 'Variable';\n metadata: ProjectMetadata;\n spec: VariableDefinition;\n}\n\n/**\n * A global variable that doesn´t belong to a project.\n */\nexport interface GlobalVariableResource {\n kind: 'GlobalVariable';\n metadata: Metadata;\n spec: VariableDefinition;\n}\n\nexport type VariableType = VariableResource | GlobalVariableResource;\n\nexport function getVariableProject(variable: VariableType): string | undefined {\n return 'project' in variable.metadata ? variable.metadata.project : undefined;\n}\n\nexport const DEFAULT_ALL_VALUE = '$__all' as const;\n"],"names":["getVariableProject","variable","metadata","project","undefined","DEFAULT_ALL_VALUE"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAwEjC,OAAO,SAASA,mBAAmBC,QAAsB;IACvD,OAAO,aAAaA,SAASC,QAAQ,GAAGD,SAASC,QAAQ,CAACC,OAAO,GAAGC;AACtE;AAEA,OAAO,MAAMC,oBAAoB,SAAkB"}
@@ -0,0 +1,59 @@
1
+ import { PluginSchema } from '@perses-dev/spec';
2
+ import { z } from 'zod';
3
+ import { Datasource, DatasourceDefinition } from '../model';
4
+ export declare const datasourceSchema: z.ZodObject<{
5
+ kind: z.ZodLiteral<"Datasource">;
6
+ metadata: z.ZodObject<{
7
+ name: z.ZodString;
8
+ } & {
9
+ project: z.ZodString;
10
+ }, "strip", z.ZodTypeAny, {
11
+ project: string;
12
+ name: string;
13
+ }, {
14
+ project: string;
15
+ name: string;
16
+ }>;
17
+ spec: z.ZodType<import("@perses-dev/spec").DatasourceSpec<import("@perses-dev/spec").UnknownSpec>, z.ZodTypeDef, import("@perses-dev/spec").DatasourceSpec<import("@perses-dev/spec").UnknownSpec>>;
18
+ }, "strip", z.ZodTypeAny, {
19
+ kind: "Datasource";
20
+ metadata: {
21
+ project: string;
22
+ name: string;
23
+ };
24
+ spec: import("@perses-dev/spec").DatasourceSpec<import("@perses-dev/spec").UnknownSpec>;
25
+ }, {
26
+ kind: "Datasource";
27
+ metadata: {
28
+ project: string;
29
+ name: string;
30
+ };
31
+ spec: import("@perses-dev/spec").DatasourceSpec<import("@perses-dev/spec").UnknownSpec>;
32
+ }>;
33
+ export declare const globalDatasourceSchema: z.ZodObject<{
34
+ kind: z.ZodLiteral<"GlobalDatasource">;
35
+ metadata: z.ZodObject<{
36
+ name: z.ZodString;
37
+ }, "strip", z.ZodTypeAny, {
38
+ name: string;
39
+ }, {
40
+ name: string;
41
+ }>;
42
+ spec: z.ZodType<import("@perses-dev/spec").DatasourceSpec<import("@perses-dev/spec").UnknownSpec>, z.ZodTypeDef, import("@perses-dev/spec").DatasourceSpec<import("@perses-dev/spec").UnknownSpec>>;
43
+ }, "strip", z.ZodTypeAny, {
44
+ kind: "GlobalDatasource";
45
+ metadata: {
46
+ name: string;
47
+ };
48
+ spec: import("@perses-dev/spec").DatasourceSpec<import("@perses-dev/spec").UnknownSpec>;
49
+ }, {
50
+ kind: "GlobalDatasource";
51
+ metadata: {
52
+ name: string;
53
+ };
54
+ spec: import("@perses-dev/spec").DatasourceSpec<import("@perses-dev/spec").UnknownSpec>;
55
+ }>;
56
+ export declare const datasourcesSchema: z.Schema<Datasource>;
57
+ export declare const datasourceDefinitionSchema: z.Schema<DatasourceDefinition>;
58
+ export declare function buildDatasourceDefinitionSchema(pluginSchema: PluginSchema): z.Schema<DatasourceDefinition>;
59
+ //# sourceMappingURL=datasource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datasource.d.ts","sourceRoot":"","sources":["../../src/schema/datasource.ts"],"names":[],"mappings":"AAaA,OAAO,EAAmD,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAG5D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI3B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;EAIjC,CAAC;AAEH,eAAO,MAAM,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAGjD,CAAC;AAEH,eAAO,MAAM,0BAA0B,EAAE,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAGpE,CAAC;AAEH,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAK1G"}
@@ -0,0 +1,41 @@
1
+ // Copyright The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ import { buildDatasourceSpecSchema, datasourceSpecSchema } from '@perses-dev/spec';
14
+ import { z } from 'zod';
15
+ import { metadataSchema, projectMetadataSchema } from './metadata';
16
+ export const datasourceSchema = z.object({
17
+ kind: z.literal('Datasource'),
18
+ metadata: projectMetadataSchema,
19
+ spec: datasourceSpecSchema
20
+ });
21
+ export const globalDatasourceSchema = z.object({
22
+ kind: z.literal('GlobalDatasource'),
23
+ metadata: metadataSchema,
24
+ spec: datasourceSpecSchema
25
+ });
26
+ export const datasourcesSchema = z.discriminatedUnion('kind', [
27
+ datasourceSchema,
28
+ globalDatasourceSchema
29
+ ]);
30
+ export const datasourceDefinitionSchema = z.object({
31
+ name: z.string().min(1),
32
+ spec: datasourceSpecSchema
33
+ });
34
+ export function buildDatasourceDefinitionSchema(pluginSchema) {
35
+ return z.object({
36
+ name: z.string().min(1),
37
+ spec: buildDatasourceSpecSchema(pluginSchema)
38
+ });
39
+ }
40
+
41
+ //# sourceMappingURL=datasource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/schema/datasource.ts"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { buildDatasourceSpecSchema, datasourceSpecSchema, PluginSchema } from '@perses-dev/spec';\nimport { z } from 'zod';\nimport { Datasource, DatasourceDefinition } from '../model';\nimport { metadataSchema, projectMetadataSchema } from './metadata';\n\nexport const datasourceSchema = z.object({\n kind: z.literal('Datasource'),\n metadata: projectMetadataSchema,\n spec: datasourceSpecSchema,\n});\n\nexport const globalDatasourceSchema = z.object({\n kind: z.literal('GlobalDatasource'),\n metadata: metadataSchema,\n spec: datasourceSpecSchema,\n});\n\nexport const datasourcesSchema: z.Schema<Datasource> = z.discriminatedUnion('kind', [\n datasourceSchema,\n globalDatasourceSchema,\n]);\n\nexport const datasourceDefinitionSchema: z.Schema<DatasourceDefinition> = z.object({\n name: z.string().min(1),\n spec: datasourceSpecSchema,\n});\n\nexport function buildDatasourceDefinitionSchema(pluginSchema: PluginSchema): z.Schema<DatasourceDefinition> {\n return z.object({\n name: z.string().min(1),\n spec: buildDatasourceSpecSchema(pluginSchema),\n });\n}\n"],"names":["buildDatasourceSpecSchema","datasourceSpecSchema","z","metadataSchema","projectMetadataSchema","datasourceSchema","object","kind","literal","metadata","spec","globalDatasourceSchema","datasourcesSchema","discriminatedUnion","datasourceDefinitionSchema","name","string","min","buildDatasourceDefinitionSchema","pluginSchema"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,yBAAyB,EAAEC,oBAAoB,QAAsB,mBAAmB;AACjG,SAASC,CAAC,QAAQ,MAAM;AAExB,SAASC,cAAc,EAAEC,qBAAqB,QAAQ,aAAa;AAEnE,OAAO,MAAMC,mBAAmBH,EAAEI,MAAM,CAAC;IACvCC,MAAML,EAAEM,OAAO,CAAC;IAChBC,UAAUL;IACVM,MAAMT;AACR,GAAG;AAEH,OAAO,MAAMU,yBAAyBT,EAAEI,MAAM,CAAC;IAC7CC,MAAML,EAAEM,OAAO,CAAC;IAChBC,UAAUN;IACVO,MAAMT;AACR,GAAG;AAEH,OAAO,MAAMW,oBAA0CV,EAAEW,kBAAkB,CAAC,QAAQ;IAClFR;IACAM;CACD,EAAE;AAEH,OAAO,MAAMG,6BAA6DZ,EAAEI,MAAM,CAAC;IACjFS,MAAMb,EAAEc,MAAM,GAAGC,GAAG,CAAC;IACrBP,MAAMT;AACR,GAAG;AAEH,OAAO,SAASiB,gCAAgCC,YAA0B;IACxE,OAAOjB,EAAEI,MAAM,CAAC;QACdS,MAAMb,EAAEc,MAAM,GAAGC,GAAG,CAAC;QACrBP,MAAMV,0BAA0BmB;IAClC;AACF"}
@@ -0,0 +1,7 @@
1
+ export * from './datasource';
2
+ export * from './metadata';
3
+ export * from './user';
4
+ export * from './secret';
5
+ export * from './role';
6
+ export * from './rolebinding';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAaA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC"}
@@ -0,0 +1,20 @@
1
+ // Copyright The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ export * from './datasource';
14
+ export * from './metadata';
15
+ export * from './user';
16
+ export * from './secret';
17
+ export * from './role';
18
+ export * from './rolebinding';
19
+
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/schema/index.ts"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport * from './datasource';\nexport * from './metadata';\nexport * from './user';\nexport * from './secret';\nexport * from './role';\nexport * from './rolebinding';\n"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,cAAc,eAAe;AAC7B,cAAc,aAAa;AAC3B,cAAc,SAAS;AACvB,cAAc,WAAW;AACzB,cAAc,SAAS;AACvB,cAAc,gBAAgB"}
@@ -0,0 +1,21 @@
1
+ import { z } from 'zod';
2
+ export declare const nameSchema: z.ZodString;
3
+ export declare const metadataSchema: z.ZodObject<{
4
+ name: z.ZodString;
5
+ }, "strip", z.ZodTypeAny, {
6
+ name: string;
7
+ }, {
8
+ name: string;
9
+ }>;
10
+ export declare const projectMetadataSchema: z.ZodObject<{
11
+ name: z.ZodString;
12
+ } & {
13
+ project: z.ZodString;
14
+ }, "strip", z.ZodTypeAny, {
15
+ project: string;
16
+ name: string;
17
+ }, {
18
+ project: string;
19
+ name: string;
20
+ }>;
21
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/schema/metadata.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,UAAU,aAImF,CAAC;AAE3G,eAAO,MAAM,cAAc;;;;;;EAEzB,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;EAEhC,CAAC"}
@@ -0,0 +1,22 @@
1
+ // Copyright The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ import { z } from 'zod';
14
+ export const nameSchema = z.string().min(1, 'Required').max(75, 'Must be 75 or fewer characters long').regex(/^[a-zA-Z0-9_.-]+$/, 'Must only contains alphanumerical characters and special characters _ . -');
15
+ export const metadataSchema = z.object({
16
+ name: nameSchema
17
+ });
18
+ export const projectMetadataSchema = metadataSchema.extend({
19
+ project: nameSchema
20
+ });
21
+
22
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/schema/metadata.ts"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { z } from 'zod';\n\nexport const nameSchema = z\n .string()\n .min(1, 'Required')\n .max(75, 'Must be 75 or fewer characters long')\n .regex(/^[a-zA-Z0-9_.-]+$/, 'Must only contains alphanumerical characters and special characters _ . -');\n\nexport const metadataSchema = z.object({\n name: nameSchema,\n});\n\nexport const projectMetadataSchema = metadataSchema.extend({\n project: nameSchema,\n});\n"],"names":["z","nameSchema","string","min","max","regex","metadataSchema","object","name","projectMetadataSchema","extend","project"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,CAAC,QAAQ,MAAM;AAExB,OAAO,MAAMC,aAAaD,EACvBE,MAAM,GACNC,GAAG,CAAC,GAAG,YACPC,GAAG,CAAC,IAAI,uCACRC,KAAK,CAAC,qBAAqB,6EAA6E;AAE3G,OAAO,MAAMC,iBAAiBN,EAAEO,MAAM,CAAC;IACrCC,MAAMP;AACR,GAAG;AAEH,OAAO,MAAMQ,wBAAwBH,eAAeI,MAAM,CAAC;IACzDC,SAASV;AACX,GAAG"}
@@ -0,0 +1,58 @@
1
+ import { z } from 'zod';
2
+ import { Permission, Role, RoleSpec } from '../model';
3
+ export declare const permissionSchema: z.ZodSchema<Permission>;
4
+ export declare const roleSpecSchema: z.ZodSchema<RoleSpec>;
5
+ export declare const roleSchema: z.ZodObject<{
6
+ kind: z.ZodLiteral<"Role">;
7
+ metadata: z.ZodObject<{
8
+ name: z.ZodString;
9
+ } & {
10
+ project: z.ZodString;
11
+ }, "strip", z.ZodTypeAny, {
12
+ project: string;
13
+ name: string;
14
+ }, {
15
+ project: string;
16
+ name: string;
17
+ }>;
18
+ spec: z.ZodType<RoleSpec, z.ZodTypeDef, RoleSpec>;
19
+ }, "strip", z.ZodTypeAny, {
20
+ kind: "Role";
21
+ metadata: {
22
+ project: string;
23
+ name: string;
24
+ };
25
+ spec: RoleSpec;
26
+ }, {
27
+ kind: "Role";
28
+ metadata: {
29
+ project: string;
30
+ name: string;
31
+ };
32
+ spec: RoleSpec;
33
+ }>;
34
+ export declare const globalRoleSchema: z.ZodObject<{
35
+ kind: z.ZodLiteral<"GlobalRole">;
36
+ metadata: z.ZodObject<{
37
+ name: z.ZodString;
38
+ }, "strip", z.ZodTypeAny, {
39
+ name: string;
40
+ }, {
41
+ name: string;
42
+ }>;
43
+ spec: z.ZodType<RoleSpec, z.ZodTypeDef, RoleSpec>;
44
+ }, "strip", z.ZodTypeAny, {
45
+ kind: "GlobalRole";
46
+ metadata: {
47
+ name: string;
48
+ };
49
+ spec: RoleSpec;
50
+ }, {
51
+ kind: "GlobalRole";
52
+ metadata: {
53
+ name: string;
54
+ };
55
+ spec: RoleSpec;
56
+ }>;
57
+ export declare const rolesEditorSchema: z.ZodSchema<Role>;
58
+ //# sourceMappingURL=role.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.d.ts","sourceRoot":"","sources":["../../src/schema/role.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGtD,eAAO,MAAM,gBAAgB,EAAE,CAAC,CAAC,SAAS,CAAC,UAAU,CAyBnD,CAAC;AAEH,eAAO,MAAM,cAAc,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAE/C,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIrB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;EAI3B,CAAC;AAEH,eAAO,MAAM,iBAAiB,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAgE,CAAC"}
@@ -0,0 +1,61 @@
1
+ // Copyright The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ import { z } from 'zod';
14
+ import { metadataSchema, projectMetadataSchema } from './metadata';
15
+ export const permissionSchema = z.object({
16
+ // TODO: use SCOPE & ACTIONS constants
17
+ actions: z.array(z.enum([
18
+ '*',
19
+ 'create',
20
+ 'read',
21
+ 'update',
22
+ 'delete'
23
+ ])).nonempty('Must contains at least 1 action'),
24
+ scopes: z.array(z.enum([
25
+ '*',
26
+ 'Dashboard',
27
+ 'Datasource',
28
+ 'EphemeralDashboard',
29
+ 'Folder',
30
+ 'GlobalDatasource',
31
+ 'GlobalRole',
32
+ 'GlobalRoleBinding',
33
+ 'GlobalSecret',
34
+ 'GlobalVariable',
35
+ 'Project',
36
+ 'Role',
37
+ 'RoleBinding',
38
+ 'Secret',
39
+ 'User',
40
+ 'Variable'
41
+ ])).nonempty('Must contains at least 1 scope')
42
+ });
43
+ export const roleSpecSchema = z.object({
44
+ permissions: z.array(permissionSchema)
45
+ });
46
+ export const roleSchema = z.object({
47
+ kind: z.literal('Role'),
48
+ metadata: projectMetadataSchema,
49
+ spec: roleSpecSchema
50
+ });
51
+ export const globalRoleSchema = z.object({
52
+ kind: z.literal('GlobalRole'),
53
+ metadata: metadataSchema,
54
+ spec: roleSpecSchema
55
+ });
56
+ export const rolesEditorSchema = z.discriminatedUnion('kind', [
57
+ roleSchema,
58
+ globalRoleSchema
59
+ ]);
60
+
61
+ //# sourceMappingURL=role.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/schema/role.ts"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { z } from 'zod';\nimport { Permission, Role, RoleSpec } from '../model';\nimport { metadataSchema, projectMetadataSchema } from './metadata';\n\nexport const permissionSchema: z.ZodSchema<Permission> = z.object({\n // TODO: use SCOPE & ACTIONS constants\n actions: z.array(z.enum(['*', 'create', 'read', 'update', 'delete'])).nonempty('Must contains at least 1 action'),\n scopes: z\n .array(\n z.enum([\n '*',\n 'Dashboard',\n 'Datasource',\n 'EphemeralDashboard',\n 'Folder',\n 'GlobalDatasource',\n 'GlobalRole',\n 'GlobalRoleBinding',\n 'GlobalSecret',\n 'GlobalVariable',\n 'Project',\n 'Role',\n 'RoleBinding',\n 'Secret',\n 'User',\n 'Variable',\n ])\n )\n .nonempty('Must contains at least 1 scope'), // TODO: limit project role\n});\n\nexport const roleSpecSchema: z.ZodSchema<RoleSpec> = z.object({\n permissions: z.array(permissionSchema),\n});\n\nexport const roleSchema = z.object({\n kind: z.literal('Role'),\n metadata: projectMetadataSchema,\n spec: roleSpecSchema,\n});\n\nexport const globalRoleSchema = z.object({\n kind: z.literal('GlobalRole'),\n metadata: metadataSchema,\n spec: roleSpecSchema,\n});\n\nexport const rolesEditorSchema: z.ZodSchema<Role> = z.discriminatedUnion('kind', [roleSchema, globalRoleSchema]);\n"],"names":["z","metadataSchema","projectMetadataSchema","permissionSchema","object","actions","array","enum","nonempty","scopes","roleSpecSchema","permissions","roleSchema","kind","literal","metadata","spec","globalRoleSchema","rolesEditorSchema","discriminatedUnion"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,CAAC,QAAQ,MAAM;AAExB,SAASC,cAAc,EAAEC,qBAAqB,QAAQ,aAAa;AAEnE,OAAO,MAAMC,mBAA4CH,EAAEI,MAAM,CAAC;IAChE,sCAAsC;IACtCC,SAASL,EAAEM,KAAK,CAACN,EAAEO,IAAI,CAAC;QAAC;QAAK;QAAU;QAAQ;QAAU;KAAS,GAAGC,QAAQ,CAAC;IAC/EC,QAAQT,EACLM,KAAK,CACJN,EAAEO,IAAI,CAAC;QACL;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD,GAEFC,QAAQ,CAAC;AACd,GAAG;AAEH,OAAO,MAAME,iBAAwCV,EAAEI,MAAM,CAAC;IAC5DO,aAAaX,EAAEM,KAAK,CAACH;AACvB,GAAG;AAEH,OAAO,MAAMS,aAAaZ,EAAEI,MAAM,CAAC;IACjCS,MAAMb,EAAEc,OAAO,CAAC;IAChBC,UAAUb;IACVc,MAAMN;AACR,GAAG;AAEH,OAAO,MAAMO,mBAAmBjB,EAAEI,MAAM,CAAC;IACvCS,MAAMb,EAAEc,OAAO,CAAC;IAChBC,UAAUd;IACVe,MAAMN;AACR,GAAG;AAEH,OAAO,MAAMQ,oBAAuClB,EAAEmB,kBAAkB,CAAC,QAAQ;IAACP;IAAYK;CAAiB,EAAE"}
@@ -0,0 +1,58 @@
1
+ import { z } from 'zod';
2
+ import { RoleBinding, RoleBindingSpec, Subject } from '../model';
3
+ export declare const subjectSchema: z.ZodSchema<Subject>;
4
+ export declare const roleBindingSpecSchema: z.ZodSchema<RoleBindingSpec>;
5
+ export declare const roleBindingSchema: z.ZodObject<{
6
+ kind: z.ZodLiteral<"RoleBinding">;
7
+ metadata: z.ZodObject<{
8
+ name: z.ZodString;
9
+ } & {
10
+ project: z.ZodString;
11
+ }, "strip", z.ZodTypeAny, {
12
+ project: string;
13
+ name: string;
14
+ }, {
15
+ project: string;
16
+ name: string;
17
+ }>;
18
+ spec: z.ZodType<RoleBindingSpec, z.ZodTypeDef, RoleBindingSpec>;
19
+ }, "strip", z.ZodTypeAny, {
20
+ kind: "RoleBinding";
21
+ metadata: {
22
+ project: string;
23
+ name: string;
24
+ };
25
+ spec: RoleBindingSpec;
26
+ }, {
27
+ kind: "RoleBinding";
28
+ metadata: {
29
+ project: string;
30
+ name: string;
31
+ };
32
+ spec: RoleBindingSpec;
33
+ }>;
34
+ export declare const globalRoleBindingSchema: z.ZodObject<{
35
+ kind: z.ZodLiteral<"GlobalRoleBinding">;
36
+ metadata: z.ZodObject<{
37
+ name: z.ZodString;
38
+ }, "strip", z.ZodTypeAny, {
39
+ name: string;
40
+ }, {
41
+ name: string;
42
+ }>;
43
+ spec: z.ZodType<RoleBindingSpec, z.ZodTypeDef, RoleBindingSpec>;
44
+ }, "strip", z.ZodTypeAny, {
45
+ kind: "GlobalRoleBinding";
46
+ metadata: {
47
+ name: string;
48
+ };
49
+ spec: RoleBindingSpec;
50
+ }, {
51
+ kind: "GlobalRoleBinding";
52
+ metadata: {
53
+ name: string;
54
+ };
55
+ spec: RoleBindingSpec;
56
+ }>;
57
+ export declare const roleBindingsEditorSchema: z.ZodSchema<RoleBinding>;
58
+ //# sourceMappingURL=rolebinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rolebinding.d.ts","sourceRoot":"","sources":["../../src/schema/rolebinding.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGjE,eAAO,MAAM,aAAa,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAG7C,CAAC;AAEH,eAAO,MAAM,qBAAqB,EAAE,CAAC,CAAC,SAAS,CAAC,eAAe,CAG7D,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI5B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;EAIlC,CAAC;AAEH,eAAO,MAAM,wBAAwB,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,CAG5D,CAAC"}
@@ -0,0 +1,40 @@
1
+ // Copyright The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ import { z } from 'zod';
14
+ import { nameSchema, metadataSchema, projectMetadataSchema } from './metadata';
15
+ export const subjectSchema = z.object({
16
+ kind: z.enum([
17
+ 'User'
18
+ ]),
19
+ name: nameSchema
20
+ });
21
+ export const roleBindingSpecSchema = z.object({
22
+ role: nameSchema,
23
+ subjects: z.array(subjectSchema).nonempty()
24
+ });
25
+ export const roleBindingSchema = z.object({
26
+ kind: z.literal('RoleBinding'),
27
+ metadata: projectMetadataSchema,
28
+ spec: roleBindingSpecSchema
29
+ });
30
+ export const globalRoleBindingSchema = z.object({
31
+ kind: z.literal('GlobalRoleBinding'),
32
+ metadata: metadataSchema,
33
+ spec: roleBindingSpecSchema
34
+ });
35
+ export const roleBindingsEditorSchema = z.discriminatedUnion('kind', [
36
+ roleBindingSchema,
37
+ globalRoleBindingSchema
38
+ ]);
39
+
40
+ //# sourceMappingURL=rolebinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/schema/rolebinding.ts"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { z } from 'zod';\nimport { RoleBinding, RoleBindingSpec, Subject } from '../model';\nimport { nameSchema, metadataSchema, projectMetadataSchema } from './metadata';\n\nexport const subjectSchema: z.ZodSchema<Subject> = z.object({\n kind: z.enum(['User']),\n name: nameSchema,\n});\n\nexport const roleBindingSpecSchema: z.ZodSchema<RoleBindingSpec> = z.object({\n role: nameSchema,\n subjects: z.array(subjectSchema).nonempty(),\n});\n\nexport const roleBindingSchema = z.object({\n kind: z.literal('RoleBinding'),\n metadata: projectMetadataSchema,\n spec: roleBindingSpecSchema,\n});\n\nexport const globalRoleBindingSchema = z.object({\n kind: z.literal('GlobalRoleBinding'),\n metadata: metadataSchema,\n spec: roleBindingSpecSchema,\n});\n\nexport const roleBindingsEditorSchema: z.ZodSchema<RoleBinding> = z.discriminatedUnion('kind', [\n roleBindingSchema,\n globalRoleBindingSchema,\n]);\n"],"names":["z","nameSchema","metadataSchema","projectMetadataSchema","subjectSchema","object","kind","enum","name","roleBindingSpecSchema","role","subjects","array","nonempty","roleBindingSchema","literal","metadata","spec","globalRoleBindingSchema","roleBindingsEditorSchema","discriminatedUnion"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,CAAC,QAAQ,MAAM;AAExB,SAASC,UAAU,EAAEC,cAAc,EAAEC,qBAAqB,QAAQ,aAAa;AAE/E,OAAO,MAAMC,gBAAsCJ,EAAEK,MAAM,CAAC;IAC1DC,MAAMN,EAAEO,IAAI,CAAC;QAAC;KAAO;IACrBC,MAAMP;AACR,GAAG;AAEH,OAAO,MAAMQ,wBAAsDT,EAAEK,MAAM,CAAC;IAC1EK,MAAMT;IACNU,UAAUX,EAAEY,KAAK,CAACR,eAAeS,QAAQ;AAC3C,GAAG;AAEH,OAAO,MAAMC,oBAAoBd,EAAEK,MAAM,CAAC;IACxCC,MAAMN,EAAEe,OAAO,CAAC;IAChBC,UAAUb;IACVc,MAAMR;AACR,GAAG;AAEH,OAAO,MAAMS,0BAA0BlB,EAAEK,MAAM,CAAC;IAC9CC,MAAMN,EAAEe,OAAO,CAAC;IAChBC,UAAUd;IACVe,MAAMR;AACR,GAAG;AAEH,OAAO,MAAMU,2BAAqDnB,EAAEoB,kBAAkB,CAAC,QAAQ;IAC7FN;IACAI;CACD,EAAE"}